按Objective-C

时间:2018-02-27 01:00:35

标签: objective-c nsnumberformatter rounding

嗨我想聪明地围绕一个浮点数,以保持位数不变。 此数字将始终具有1或2个整数位数+未定义的十进制数字。

我想要一个总是3位数的数字,无论其位置如何

EX:

83.235 = 83.2
0.110321 = 0.11
4.56723 = 4.57

1 个答案:

答案 0 :(得分:2)

如果前导零不算数字

NSNumberFormatter具有usesSignificantDigitsminimumSignificantDigitsmaximumSignificantDigits属性,可以满足您的需求。如果您不希望在具有较少小数位的值上使用尾随零,则将两个值都设置为3,或者仅设置为最大值。

如果您希望前导零计为数字

我不知道有任何内置的处理方式,但您可以编写一些自定义逻辑来执行此操作。 e.g。

if (yourNum < 10)
    formattedNum = [NSString stringWithFormat:@"%.2f", yourNum];
else
    formattedNum = [NSString stringWithFormat:@"%.1f", yourNum];

这假设数字始终在0到99之间。无论如何,如果您对数据完整性没有100%的信心,那么您可能需要更多检查。