在这种情况下(对象 - ,的iOS):舍入当[INT] = [浮子] + [INT]
float a = 0.99999f;
int b = 1000;
int c = a + b;
在结果c = 1001
。我发现它发生是因为b
转换为float(特定于iOS),因此a + b
没有足够的精度来处理1000.9999
和(为什么?)被四舍五入为较高值。如果a
是0.999f
,我们得到c = 1000
- 理论上正确的行为。
所以我的问题是为什么浮点数四舍五入到更高的价值?描述这种行为(或惯例)的地方?
我在iPhone Simulator,Apple LLVM 4.2编译器上测试了这个。
这里我越来越1000. – Balu 2013-04-05 11:38:26
也刚刚开始1000 – 2013-04-05 11:38:45
我的错误,人。 'a = 0.99999f' – brigadir 2013-04-05 11:46:40