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
不会满足您的需求。
我有一个 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
不会满足您的需求。