kinde67 发表于 2014-8-19 09:12

求助,关系运算问题

为什么 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
求解答
以上数字只是想简化问题

madio 发表于 2014-8-19 13:09

这应该是系统误差造成的。二者做差并不是零,浮点数很可能出现这个问题。
>> (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]
查看完整版本: 求助,关系运算问题