求助,关系运算问题
为什么 matlab 中 mod(9.2,1)-mod(9,1)>=mod(0.2,1)结果是ans=0 就是“假”
可是明明mod(9.2,1)-mod(9,1) 和mod(0.2,1)的结果都是0.2
相反的,mod(9.2,1)-mod(9,1)<mod(0.2,1)结果都是ans=1
求解答
以上数字只是想简化问题
这应该是系统误差造成的。二者做差并不是零,浮点数很可能出现这个问题。
>> (mod(9.2,1)-mod(9,1))-mod(0.2,1)
ans =
-7.2164e-16
但是如果你限定了有效数字,结果就是正确的了,比如下面的限定5位有效数字的
>> vpa(mod(9.2,1)-mod(9,1),5)<vpa(mod(0.2,1),5)
ans =
0
>> vpa(mod(9.2,1)-mod(9,1),5)>=vpa(mod(0.2,1),5)
ans =
1
页:
[1]