[NSString stringWithFormat:@"$%.2f", n]
给我25.01美元;这就是我想要的。但是,我想要的是当n为25时,它给我25美元而不是25美元。当n为25.1时,它给我25.1美元而不是25.10美元。
有办法吗?
答案 0 :(得分: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
。