也許,這是一個非常簡單的問題,但我無法得到答案。我一直在尋找相當長一段時間(現在的谷歌認爲我發送自動查詢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