[VBA ] 數值計算誤差問題

看板Visual_Basic作者 (尋找前進的動力)時間12年前 (2013/08/03 01:01), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/1
在VBA中,如果令a=1.0225^2且b=a-1 理論上a應該是1.04550625,而b就是0.04550625 但實際上b卻是0.045506249999999 請問為什麼會有這樣的問題&該如何解決?? Thanks! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 116.59.247.178

08/03 10:44, , 1F
浮點誤差,一定會發生。
08/03 10:44, 1F

08/03 23:45, , 2F
解決方法就是自己寫乘法吧...
08/03 23:45, 2F

08/04 00:25, , 3F
主要是a的結果OK,但是減1以後就會有誤差產生..
08/04 00:25, 3F

08/04 00:37, , 4F
最麻煩的是如果b要round到小數第七位會跟預期不符..
08/04 00:37, 4F

08/05 18:24, , 5F
為何跟預期不符
08/05 18:24, 5F

08/05 22:42, , 6F
原本預期b是0.0455063,但實際上b卻是0.0455062
08/05 22:42, 6F

08/06 09:17, , 7F
ROUND(ROUND(0.0455062499,8),7) 可以解決 但是出門概不承認
08/06 09:17, 7F
文章代碼(AID): #1H--Nwco (Visual_Basic)
文章代碼(AID): #1H--Nwco (Visual_Basic)