如何配置NSNumberFormatter以显示没有前导零的小数部分?

时间:2012-07-17 14:15:35

标签: cocoa-touch cocoa nsnumber nsnumberformatter

我正在使用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];

1 个答案:

答案 0 :(得分:2)

您可以通过乘以N次幂为10来消除N前导零。由于您要查找第100位,请将0.012676乘以100,并将其转换为整数。