2015-11-07 37 views
1

[NSString stringWithFormat:@"$%.2f", n]當n爲25.011時給我$ 25.01;這就是我想要的。但是,我想要的是當n是25時,它給我25美元而不是25美元。當n是25.1時,它給我25.1美元而不是25.10美元。格式浮點到字符串兩個或更少的小數位在目標c

有沒有辦法做到這一點?

+1

向你的格式字符串添加一個零應該滿足'$%。02f' –

+0

@ l'L否,這與'$%。2f'相同。 '0'在這個位置沒有做任何事情。 – rmaddy

+0

@ l'L'l這就是問題的要點。 OP想要截斷的結果,但沒有用'%.2f'格式說明符得到它們。 – rmaddy

回答

2

調查NSNumberFormatter。您可以指定最大和最小分數位數。例如:

NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init]; 
fmt.numberStyle = NSNumberFormatterDecimalStyle; 
fmt.maximumFractionDigits = 2; 
fmt.minimumFractionDigits = 0; 
NSLog(@"12.34 = %@, 12.3 = %@, 12 = %@", [fmt stringFromNumber:@(12.34)], [fmt stringFromNumber:@(12.30)], [fmt stringFromNumber:@(12.00)]); 

這導致輸出:

12.34 = 12.34,12.3 = 12.3,12 = 12

使用格式化器,代碼可以是:

double n = 25.1; 
NSString *result = [NSString stringWithFormat:@"$%@", [fmt stringFromNumber:@(n)]]; 

結果將是$25.1

相關問題