NSNumber格式化货币样式给出错误的输出

时间:2017-05-25 11:57:50

标签: ios objective-c

我正在使用带有NSNumberFormatterCurrencyStyle的NSNumberFormatter,只要我输入一个小数字作为输入就可以正常工作但是如果我给出的数字特别是超过7位数,那么它会向上取7位并在之后加0: 例如,如果我的电话号码是:12345678 然后输出是:12,345,680

如果我的电话号码是:123456789 然后输出是:123,456,800

我的代码如下:

NSNumberFormatter* numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior: NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
[numberFormatter setMaximumFractionDigits:2];
NSLog(@"%@",[numberFormatter stringFromNumber: [NSNumber numberWithFloat:value]]);

所以请帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

您应该将NSDecimalNumber用于财务目的。

NSLog(@"%@",[numberFormatter stringFromNumber: [NSDecimalNumber decimalNumberWithString:@"123456789"]]);