Objective-C Ceil()没有返回正确的值

时间:2012-12-20 05:39:25

标签: objective-c ios ceil

以下代码返回意外(和错误的值)。

x1 = ceil(ceil(ceil(100*1.0f)*1.0f)*1.1f);

它返回111而不是110.我知道将数字乘以1毫无意义,但那些1并不总是1。当它们是其他值时,该函数按预期工作。

2 个答案:

答案 0 :(得分:1)

这是浮点错误的问题。 1.1f可能真的像1.100056778。

这意味着100 * 1.100056778 = 110.0056778。该号码的ceil为111。

答案 1 :(得分:1)

使用ceilf运算符为我修复了它:

float x1 = ceilf(ceilf(ceilf(100*1.0f)*1.0f)*1.1f);
NSLog(@"%f",x1); // 110