我做了一個非常簡單的程序,分發變更(宿舍,硬幣,鎳和便士)給用戶。它分發相同的金額,價值,用戶輸入現金的變化。它表現良好,直到我輸入:0.59 因此,修改了一下程序後,我能解決這個問題。不過,我還是不明白,究竟是什麼我做得對解決它......瞭解類型鑄造
INT change_owed(浮動量) {
int change, coins;
change = coins = 0;
change = (float)(amount * 1000000.0);
change /= 10000;
任何解釋將是巨大的。另外,如果這個問題已經被問到,我很抱歉。在搜索stackoverflow時,我找不到解決方案。
我們需要比這更多的代碼,什麼類型的變化和數量? – Joshpbarron 2015-03-18 22:25:49
在此代碼示例中,演員陣容可能不會執行任何操作,但此處的背景可能有所幫助:http://stackoverflow.com/questions/2100490/floating-point-inaccuracy-examples – Douglas 2015-03-18 22:51:44
change是一個整數,而amount是一個整數浮動。 – 2015-03-18 23:10:35