[VBA ] 數值計算誤差問題

作者: detecter (尋找前進的動力)   2013-08-03 01:01:44
在VBA中,如果令a=1.0225^2且b=a-1
理論上a應該是1.04550625,而b就是0.04550625
但實際上b卻是0.045506249999999
請問為什麼會有這樣的問題&該如何解決??
Thanks!
作者: MOONRAKER (㊣牛鶴鰻毛人)   2013-08-03 10:44:00
浮點誤差,一定會發生。
作者: ClubT (小喬)   2013-08-03 23:45:00
解決方法就是自己寫乘法吧...
作者: detecter (尋找前進的動力)   2013-08-04 00:25:00
主要是a的結果OK,但是減1以後就會有誤差產生..最麻煩的是如果b要round到小數第七位會跟預期不符..
作者: MOONRAKER (㊣牛鶴鰻毛人)   2013-08-05 18:24:00
為何跟預期不符
作者: detecter (尋找前進的動力)   2013-08-05 22:42:00
原本預期b是0.0455063,但實際上b卻是0.0455062
作者: Marty (DNA探針)   2013-08-06 09:17:00
ROUND(ROUND(0.0455062499,8),7) 可以解決 但是出門概不承認

Links booklink

Contact Us: admin [ a t ] ucptt.com