我正在使用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];
答案 0 :(得分:2)
您可以通过乘以N
次幂为10来消除N
前导零。由于您要查找第100位,请将0.012676
乘以100
,并将其转换为整数。