NSNumberFormatter设置乘数以除以大数

时间:2017-07-31 10:44:25

标签: ios objective-c nsnumberformatter

我有一个NSNumberFormatter,我想以十亿为单位显示货币, 所以,如果我有1,000,000,000美元,我想显示1B $

我创建了NSNumberFormatter对象并设置了multiplyer:

NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc]init];
[numberFormatter setMultiplier: @(1.0/1000000000)];

如果我将乘数显示为:

NSLog(@" NUMBER  %@", numberFormatter.multiplier); //  -->  NUMBER  1e-09

但如果我把

NSLog(@"Formatter %@", [numberFormatter1 stringFromNumber:@(1225245041496000)]); // --> Formatter 0

它对我来说是倍数,但我不知道如何防止这种情况。

1 个答案:

答案 0 :(得分:1)

您似乎超过multiplier允许的最小值。我无法在其上找到文档,但快速测试显示:

[numberFormatter setMultiplier: @(1.0 / 8388608.0)];

工作正常,但

[numberFormatter setMultiplier: @(1.0 / 8388609.0)];

失败(字符串输出始终为" 0")。

因此,我认为NSNumberFormatter无法满足您的需求。