Objective-C中的round()问题

时间:2014-07-07 22:26:11

标签: ios objective-c math

试图弄清楚为什么圆函数不能用于小数百分位。

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。

2 个答案:

答案 0 :(得分:2)

舍入函数比您希望输出舍入到的最低有效数字小一个数量级,并使用它来舍入。在这种情况下,5.455.495.40相同,因为百分之一数字无关紧要。如果我正确理解您的问题,您希望5.44444444向下舍入到55.4444444445以向上舍入到6

我认为您正在寻找的是递归舍入操作。您需要将5.45转为5.5,然后将5.5转为6。换句话说,您想要舍入最小的非零数字,然后围绕该输出的最小非零数字...重复...直到最后一个非零数字是您想要的最低有效数字。

答案 1 :(得分:0)

0.1添加到5.45,然后将其舍入为6