[NSString stringWithFormat:@"$%.2f", n]
当 n 为 25.011 时,给我 25.01 美元;这就是我想要的。然而,我想要的是当 n 为 25 时,它给我 25 美元而不是 25.00 美元。当 n 为 25.1 时,它给我 25.1 美元,而不是 25.10 美元。
有办法做到这一点吗?
最佳答案
查看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
。
关于objective-c - 将 float 格式化为 objective-c 中小数点后两位或更少的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33579550/