0

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

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

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

4

2 回答 2

1

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

这意味着 100 * 1.100056778 = 110.0056778。这个ceil数字是111。

于 2012-12-20T05:45:13.970 回答
1

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

float x1 = ceilf(ceilf(ceilf(100*1.0f)*1.0f)*1.1f);
NSLog(@"%f",x1); // 110
于 2012-12-20T05:47:34.740 回答