我NSNumberFormatter
用来格式化一个NSDecimalNumber
.
我可以使用什么配置将数字显示0.012676
为1
?
重要提示:我不想四舍五入到 1.0 — 我想四舍五入到小数点的百位,然后去掉前面的零和小数点分隔符。
我当前的配置如下所示:
// in a method...
NSDecimalNumber *value = /* retrieve a value like 0.012676 */;
NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
// this is the rounding behavior I want
[nf setRoundingMode: NSNumberFormatterRoundHalfEven];
[nf setMinimumFractionDigits: 2];
[nf setMaximumFractionDigits: 2];
return [nf stringFromNumber: value];
生成以下输出:
.01
多亏了 dasblinkenlight 和 Twitter 朋友,解决方案是简单地乘以100
,然后消除小数位数:
[nf setMultiplier: [NSNumber numberWithInt: 100]];
[nf setMinimumFractionDigits: 0];
[nf setMaximumFractionDigits: 0];