看板 Flash 關於我們 聯絡資訊
這個問題是在寫計算機的時候發現的, 已經寫好加減乘除等於,用整數測試都沒有問題, 但是用小數測的時候卻不時會發生問題, 本來還以為我為什麼寫出這種爛程式,連問題在哪裡都找不到.. 只要是x.8或x.3-0.1算出來都會是錯的答案 後來真的找不到 一氣之下我寫了 trace(0.3-0.1); 沒想到跑出來的是 0.19999999999999998 ...怎麼會這樣!!國小數學耶!!!!!竟然會算錯!! 在板上找不到相關資料,於是咕狗到一個相關的討論串: http://www.kirupa.com/forum/showthread.php?t=247416 不過第一個連結已經連不到了,後面說可以四捨五入 但我要做的是計算機...總不能說這個計算機只能四捨五入到小數點下一位吧! 真是太瞎了>"< 有沒有人知道要怎麼解決呢...非常感謝 O___Q -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.120.64.121
aquarianboy:你如果知道浮點數有這樣的特性就不會驚訝了 : 03/18 21:16
ooopooo:小數後面的值一定要被捨去或進位 03/18 21:51
samuelcdf:請重新閱讀計算機概論 :P 03/19 19:36
peacedove:然後自己寫adder嗎XDDD 03/19 21:16
StranGhost:一樓的文章真不錯~~~ 03/20 15:45
sin282:value.toFixed(四捨五入位數); 03/21 15:16