NSNumberformatter 将零添加到小数部分
NSNumberformatter add zeros to decimal part
我正在寻找一种显示以下内容的方法:
- "20000.5" => "20,000.50"
- “20000”=>“20,000.00”
所以基本上总是两位小数,如果只有一位小数,则在小数部分加一个额外的零
最好的方法是什么?我知道我可以使用 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
- 我希望它是 1,008,977.20
您只需添加:
[numberFormatter2 setMinimumFractionDigits:2];
这将给出您想要的输出。
但请删除以下行:
[numberFormatter2 setGroupingSeparator:@","];
[numberFormatter2 setGroupingSize:3];
[numberFormatter2 setDecimalSeparator:@"."];
这种固定格式会使您的许多用户感到困惑。
你下面的代码是错误的
[numberFormatter2 setMaximumFractionDigits:2];
将代码更改为以下示例
[numberFormatter2 setMinimumFractionDigits:2];
也就是说你的输出结果可以包含两位以上的小数。
我正在寻找一种显示以下内容的方法:
- "20000.5" => "20,000.50"
- “20000”=>“20,000.00”
所以基本上总是两位小数,如果只有一位小数,则在小数部分加一个额外的零
最好的方法是什么?我知道我可以使用 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
- 我希望它是 1,008,977.20
您只需添加:
[numberFormatter2 setMinimumFractionDigits:2];
这将给出您想要的输出。
但请删除以下行:
[numberFormatter2 setGroupingSeparator:@","];
[numberFormatter2 setGroupingSize:3];
[numberFormatter2 setDecimalSeparator:@"."];
这种固定格式会使您的许多用户感到困惑。
你下面的代码是错误的
[numberFormatter2 setMaximumFractionDigits:2];
将代码更改为以下示例
[numberFormatter2 setMinimumFractionDigits:2];
也就是说你的输出结果可以包含两位以上的小数。