NSNumberformatter 将零添加到小数部分

NSNumberformatter add zeros to decimal part

我正在寻找一种显示以下内容的方法:

所以基本上总是两位小数,如果只有一位小数,则在小数部分加一个额外的零

最好的方法是什么?我知道我可以使用 NSNumberformatter 但我一直得到 "20000.9" => "20,000.9" 而不是 "20000.9" => "20,000.90"

下面是我的代码,但它不起作用。

NSNumberFormatter *numberFormatter2 = [[NSNumberFormatter alloc] init];
[numberFormatter2 setGroupingSeparator:@","];
[numberFormatter2 setGroupingSize:3];
[numberFormatter2 setUsesGroupingSeparator:YES];
[numberFormatter2 setDecimalSeparator:@"."];
[numberFormatter2 setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter2 setMaximumFractionDigits:2];
NSString *theString = [numberFormatter2 stringFromNumber:[NSNumber numberWithDouble:1008977.2]];
NSLog(@"Number is: %@", theString);

---Number is: 1,008,977.2

您只需添加:

[numberFormatter2 setMinimumFractionDigits:2];

这将给出您想要的输出。

但请删除以下行:

[numberFormatter2 setGroupingSeparator:@","];
[numberFormatter2 setGroupingSize:3];
[numberFormatter2 setDecimalSeparator:@"."];

这种固定格式会使您的许多用户感到困惑。

你下面的代码是错误的

[numberFormatter2 setMaximumFractionDigits:2];

将代码更改为以下示例

[numberFormatter2 setMinimumFractionDigits:2];

也就是说你的输出结果可以包含两位以上的小数。