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可能无法执行您想要的操作。