试图弄清楚为什么圆函数不能用于小数百分位。
int i=round(0.054545*100);
NSLog(@"Rounded value is %d",i);
Output: Rounded value is 5
int i=round(0.055*100);
NSLog(@"Rounded value is %d",i);
Output: Rounded value is 6
任何建议将0.0545 * 100~(0.055 * 100)舍入到6。
答案 0 :(得分:2)
舍入函数比您希望输出舍入到的最低有效数字小一个数量级,并使用它来舍入。在这种情况下,5.45
与5.49
和5.40
相同,因为百分之一数字无关紧要。如果我正确理解您的问题,您希望5.44444444
向下舍入到5
和5.4444444445
以向上舍入到6
?
我认为您正在寻找的是递归舍入操作。您需要将5.45
转为5.5
,然后将5.5
转为6
。换句话说,您想要舍入最小的非零数字,然后围绕该输出的最小非零数字...重复...直到最后一个非零数字是您想要的最低有效数字。
答案 1 :(得分:0)
将0.1
添加到5.45
,然后将其舍入为6
。