嗨,我想对 float 进行智能舍入,以保持位数不变。 该数字始终包含 1 或 2 个整数位 + 未定义的小数位。
我想要一个始终为 3 位数字的号码,无论其位置如何
例如:
83.235 = 83.2
0.110321 = 0.11
4.56723 = 4.57
最佳答案
如果前导零不算数字
NSNumberFormatter 有 usesSignificantDigits , minimumSignificantDigits ,和maximumSignificantDigits应该满足您的需要的属性。将这两个值设置为 3,或者如果您不想在小数位数较少的值上添加尾随零,则将其设置为最大值。
如果您希望前导零算作数字
我不知道有任何内置的方法来处理这个问题,但是您可以编写一些自定义逻辑来做到这一点。例如
if (yourNum < 10)
formattedNum = [NSString stringWithFormat:@"%.2f", yourNum];
else
formattedNum = [NSString stringWithFormat:@"%.1f", yourNum];
这是假设数字始终在 0 到 99 之间。无论如何,因此,如果您对数据完整性没有 100% 的信心,您可能需要进行更多检查。
关于objective-c - Objective-C 中按位数智能舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48999544/