作者detecter (尋找前進的動力)
看板Visual_Basic
標題[VBA ] 數值計算誤差問題
時間Sat Aug 3 01:01:44 2013
在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
1F:→ MOONRAKER:浮點誤差,一定會發生。 08/03 10:44
2F:推 ClubT:解決方法就是自己寫乘法吧... 08/03 23:45
3F:→ detecter:主要是a的結果OK,但是減1以後就會有誤差產生.. 08/04 00:25
4F:→ detecter:最麻煩的是如果b要round到小數第七位會跟預期不符.. 08/04 00:37
5F:→ MOONRAKER:為何跟預期不符 08/05 18:24
6F:→ detecter:原本預期b是0.0455063,但實際上b卻是0.0455062 08/05 22:42
7F:推 Marty:ROUND(ROUND(0.0455062499,8),7) 可以解決 但是出門概不承認 08/06 09:17