[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