作者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