按 Objective-C 中的位数智能舍入
Smart rounding by number of digits in Objective-C
您好,我想对浮点数进行智能舍入,以保持位数不变。
此数字将始终包含 1 或 2 个整数数字 + 未定义的十进制数字。
我想要一个无论位置如何都始终为 3 位数字的号码
EX:
83.235 = 83.2
0.110321 = 0.11
4.56723 = 4.57
如果前导零不算数字
NSNumberFormatter 具有 usesSignificantDigits, minimumSignificantDigits, and maximumSignificantDigits 属性,可以满足您的需要。将这两个值都设置为 3,或者如果您不想在小数位较少的值上添加尾随零,则只设置最大值。
如果您希望将前导零计为数字
我不知道有任何 built-in 处理此问题的方法,但您可以编写一些自定义逻辑来执行此操作。例如
if (yourNum < 10)
formattedNum = [NSString stringWithFormat:@"%.2f", yourNum];
else
formattedNum = [NSString stringWithFormat:@"%.1f", yourNum];
这是假设数字始终介于 0 和 99.whatever 之间,因此如果您对数据完整性不是 100% 有信心,您可能需要进行更多检查。
您好,我想对浮点数进行智能舍入,以保持位数不变。 此数字将始终包含 1 或 2 个整数数字 + 未定义的十进制数字。
我想要一个无论位置如何都始终为 3 位数字的号码
EX:
83.235 = 83.2
0.110321 = 0.11
4.56723 = 4.57
如果前导零不算数字
NSNumberFormatter 具有 usesSignificantDigits, minimumSignificantDigits, and maximumSignificantDigits 属性,可以满足您的需要。将这两个值都设置为 3,或者如果您不想在小数位较少的值上添加尾随零,则只设置最大值。
如果您希望将前导零计为数字
我不知道有任何 built-in 处理此问题的方法,但您可以编写一些自定义逻辑来执行此操作。例如
if (yourNum < 10)
formattedNum = [NSString stringWithFormat:@"%.2f", yourNum];
else
formattedNum = [NSString stringWithFormat:@"%.1f", yourNum];
这是假设数字始终介于 0 和 99.whatever 之间,因此如果您对数据完整性不是 100% 有信心,您可能需要进行更多检查。