登录论坛

查看完整版本 : [讨论]一个关于 fix 奇怪的问题


lao4lao4
2008-11-19, 16:11
t = 0:0.01:0.1; %t(7) = 0.06
fix(t(7)/0.06)*0.06 - t(7) % 应该是零 可是结果却是 -6.9389e-018
t(7)= 0.06 % 给t(7)重新赋值
fix(t(7)/0.06)*0.06 - t(7) % 结果是零


:ft:

guofeng0108
2008-11-20, 09:20
计算机的浮点运算难免有误差!!!!!
-18次基本可以认为是0 了!!!!!!

lao4lao4
2008-11-20, 10:55
开始我也没觉得有什么,可是我当初写的是一个循环中的判断语句
for i = 1:size(t,2)
if fix(t(1)/0.06)*0.06 - t(1) == 0
……


结果怎么都不对,后来发现这个问题。用mod不会出问题
:sweat:

可能的原因不仅仅是在 fix 函数,可能与 t 的赋值有关系

guofeng0108
2008-11-20, 13:47
也许吧!!!!!!!!!