也许,这是一个非常简单的问题,但我无法得到答案。我一直在寻找相当长一段时间(现在的谷歌认为我发送自动查询http://twitter.com/michaelsync/status/17177278608)..C++ float to int
int n = 4.35 *100;
cout << n;
为什么成为“434”,而不是“435”的输出? 4.35 * 100 = 435这是一个整数值,这应该可以分配给整数变量“n”,对吧?
OR C++编译器在乘法之前是否将4.35转换为整数?我认为它不会。为什么编译器会自动将4.35更改为4.34,它仍然是一个浮点数?
谢谢。
如果4.35在乘法之前被转换为“int”,结果如何为434?那不是400吗?只是为了排除你的一个解释。 – pmr 2010-06-27 16:27:45
如果你做了int y =(int)(4.35 * 100);你不会 - 如果你打算调用一个函数,你可以选择一个合适的函数来得到你需要的答案,也可以在C++中完成。但是在示例代码中,您并未调用函数,而是使用由该语言提供的隐式类型转换。 – 2010-06-27 16:39:23
4.35不完全可以表示。下一个最接近的double值似乎是(在你的情况下)4.34999 ...,乘以100,结果是434.999 ...,因此转换为434. – sellibitze 2010-06-27 17:39:49