1
[NSString stringWithFormat:@"$%.2f", n]
當n爲25.011時給我$ 25.01;這就是我想要的。但是,我想要的是當n是25時,它給我25美元而不是25美元。當n是25.1時,它給我25.1美元而不是25.10美元。格式浮點到字符串兩個或更少的小數位在目標c
有沒有辦法做到這一點?
[NSString stringWithFormat:@"$%.2f", n]
當n爲25.011時給我$ 25.01;這就是我想要的。但是,我想要的是當n是25時,它給我25美元而不是25美元。當n是25.1時,它給我25.1美元而不是25.10美元。格式浮點到字符串兩個或更少的小數位在目標c
有沒有辦法做到這一點?
調查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
。
向你的格式字符串添加一個零應該滿足'$%。02f' –
@ l'L否,這與'$%。2f'相同。 '0'在這個位置沒有做任何事情。 – rmaddy
@ l'L'l這就是問題的要點。 OP想要截斷的結果,但沒有用'%.2f'格式說明符得到它們。 – rmaddy