NSNumberFormatter 设置用于除以大数的乘数

NSNumberFormatter set multiplier for dividing with large number

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

我创建 NSNumberFormatter 对象并设置乘法器:

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

如果我将乘数显示为:

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

但是如果我把

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

我觉得乘数轮数很合适,但我不知道如何防止这种情况发生。

您似乎超出了 multiplier 允许的最小值。我找不到关于它的文档,但快速测试显示:

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

工作正常,但是

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

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

所以我认为 NSNumberFormatter 不会满足您的需求。