作者miau (米奧)
看板Flash
標題[問題] as3的小數計算錯誤!?
時間Fri Mar 18 17:29:36 2011
這個問題是在寫計算機的時候發現的,
已經寫好加減乘除等於,用整數測試都沒有問題,
但是用小數測的時候卻不時會發生問題,
本來還以為我為什麼寫出這種爛程式,連問題在哪裡都找不到..
只要是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