救救我...一樣number都判斷不出來
在matlab中遇到精度問題,測試過好多情況,為什麼會有下面的情況,精度和數字相等,卻判斷不出來?function test22
format long
newpoint=0;
x=0.33333
y=vpa(1/3,5)
if (x==y)
newpoint=2
elseif (y~=x)
newpoint=1
end
end
點解ans是
x = 0.333330000000000
y =.33333
newpoint =1
我吾明白?why?
麻煩各位大大救我 可以用差的绝对值和一个很小的数比较作为判断条件 数值可以和symbolic比较吗? symbolic我不熟
但改为 if(x==double(y)), newpoint=2, elseif (double(y)~=x), newpoint=1, end 是OK的
建议使用下列较好
if (x-double(y))<=eps, newpoint=2; else newpoint=1; end 解決了對比的問題,我真是初哥哦.!!!
页:
[1]