Objective c 为什么NSNumberFormatter跳过一个数字?

Objective c 为什么NSNumberFormatter跳过一个数字?,objective-c,nsnumberformatter,Objective C,Nsnumberformatter,假设我有以下几点: NSNumber*num=[NSNumber numberwhithdouble:123456789012134567] 现在,我希望将其格式化为以下格式的字符串:1.234567E16 我试过两种方法: formatter.numberStyle = NSNumberFormatterScientificStyle; formatter.maximumFractionDigits = 6; 及 但我的结果总是1.23457E16 为什么它跳过了6级 如果我

假设我有以下几点:

NSNumber*num=[NSNumber numberwhithdouble:123456789012134567]

现在,我希望将其格式化为以下格式的字符串:
1.234567E16

我试过两种方法:

    formatter.numberStyle = NSNumberFormatterScientificStyle;
    formatter.maximumFractionDigits = 6;

但我的结果总是
1.23457E16

为什么它跳过了6级

如果我将其更改为
maximumFractionDigits=7
它将打印
1.234568E16


我做错了什么?

很可能把6四舍五入到7。

很可能把6四舍五入到7。

很可能把6四舍五入到7。

很可能把6四舍五入到7。

我不建议使用
formatter.roundingMode=NSNumberFormatterRoundDown因为这是一个黑客

强制6位所需做的是设置小数位数的最大值和最小值

[formatter setMaximumFractionDigits:6];
[formatter setMinimumFractionDigits:6];

我不建议使用
formatter.roundingMode=NSNumberFormatterRoundDown因为这是一个黑客

强制6位所需做的是设置小数位数的最大值和最小值

[formatter setMaximumFractionDigits:6];
[formatter setMinimumFractionDigits:6];

我不建议使用
formatter.roundingMode=NSNumberFormatterRoundDown因为这是一个黑客

强制6位所需做的是设置小数位数的最大值和最小值

[formatter setMaximumFractionDigits:6];
[formatter setMinimumFractionDigits:6];

我不建议使用
formatter.roundingMode=NSNumberFormatterRoundDown因为这是一个黑客

强制6位所需做的是设置小数位数的最大值和最小值

[formatter setMaximumFractionDigits:6];
[formatter setMinimumFractionDigits:6];

不是因为6被四舍五入,而下一个数字是7,所以四舍五入为7吗?如果您使用1234562,它是否仍然“跳过”一个?是的,在发布几分钟后,我尝试了
formatter.roundingMode=NSNumberFormatterRoundDown这就解决了问题。我可能该上床睡觉了。@PeterFoti如果你找到了解决方案,请发布一个答案或标记一个已有的答案。谢谢你想处理负数吗?NSNumberFormatterRoundDown可能不符合您的要求。这不是因为6被四舍五入,而下一个数字是7,所以它被四舍五入为7吗?如果您使用1234562,它是否仍然“跳过”一个?是的,在发布几分钟后,我尝试了
formatter.roundingMode=NSNumberFormatterRoundDown这就解决了问题。我可能该上床睡觉了。@PeterFoti如果你找到了解决方案,请发布一个答案或标记一个已有的答案。谢谢你想处理负数吗?NSNumberFormatterRoundDown可能不符合您的要求。这不是因为6被四舍五入,而下一个数字是7,所以它被四舍五入为7吗?如果您使用1234562,它是否仍然“跳过”一个?是的,在发布几分钟后,我尝试了
formatter.roundingMode=NSNumberFormatterRoundDown这就解决了问题。我可能该上床睡觉了。@PeterFoti如果你找到了解决方案,请发布一个答案或标记一个已有的答案。谢谢你想处理负数吗?NSNumberFormatterRoundDown可能不符合您的要求。这不是因为6被四舍五入,而下一个数字是7,所以它被四舍五入为7吗?如果您使用1234562,它是否仍然“跳过”一个?是的,在发布几分钟后,我尝试了
formatter.roundingMode=NSNumberFormatterRoundDown这就解决了问题。我可能该上床睡觉了。@PeterFoti如果你找到了解决方案,请发布一个答案或标记一个已有的答案。谢谢你想处理负数吗?NSNumberFormatterRoundDown可能无法执行您想要的操作。