objective-c - 将 float 格式化为 objective-c 中小数点后两位或更少的字符串

标签 objective-c

[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/

相关文章:

c++ - Objective-C变量布局

ios - IOHIDEventSystemClientScheduleWithRunLoop 与 EXC_BAD_ACCESS

ios - UIpickerView 在同一 View Controller 中填充多个 uitextFields

ios - 如何为日期结构 "2014-04-01T13:30:00.000+0000"设置日期格式化程序

objective-c - drawRect 的 aRect 参数与 UIView 的边界有关

objective-c - 如果我正在进行手动内存管理,应使用哪个 Json 库

objective-c - OS X编程中,如何保存和恢复Windows命令?

用于快节奏游戏的 iOS 滑动手势识别器

objective-c - 应用组织 : Classes vs arrays

ios - UIScrollViews 并在其上添加组件