NSNumberFormatter 仅四舍五入到小数点后 3 位
Posted
技术标签:
【中文标题】NSNumberFormatter 仅四舍五入到小数点后 3 位【英文标题】:NSNumberFormatter only rounds to 3 decimal places 【发布时间】:2009-05-01 04:15:26 【问题描述】:我正在尝试在 iPhone 应用程序中使用 NSNumberFormatter
将数字四舍五入到小数点后 5 位,但 [formatter stringFromNumber:]
总是返回四舍五入到 0.001(小数点后 3 位)的字符串。我做错了什么?
formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setRoundingMode:NSNumberFormatterRoundHalfUp];
[formatter setSecondaryGroupingSize:3];
[formatter setRoundingIncrement:[NSNumber numberWithDouble:0.00001]];
【问题讨论】:
【参考方案1】:试试-setMaximumFractionDigits: 和-setMinimumFractionDigits:
这些配置小数分隔符后的位数。
【讨论】:
谢谢内森!我在阅读文档时一定遗漏了一些东西,但是它们与 setMaximumSignificantDigits: 和 setMinimumSignificantDigits: 有什么不同:(除了单词重要试试 [格式化程序 setFormat:@"0.00000"];而不是 setRoundingIncrement:.
【讨论】:
我不认为 setFormat: 在 iPhone 上可用。见***.com/questions/416037/… 实际上,我收回了这一点。 setFormat:@"0.00000" 确实有效,但它不会四舍五入......我总是得到小数点后 5 个数字——例如,0.10000,而在这种情况下我真的只想要 0.1。 啊,对不起,我误解了你想要完成的任务。 我不太清楚我想要完成什么。您的回复很有帮助。谢谢。以上是关于NSNumberFormatter 仅四舍五入到小数点后 3 位的主要内容,如果未能解决你的问题,请参考以下文章