我不知道发生了什么,但当我在我的代码中使用i = 0.1:0.1:7
时,我得到整数1和2,然后跳过3但得到4,5,6和7没有问题。
x=zeros((t_f/h)+1,1);
x(1,1)=0;
table=zeros(t_f,1);
for i=0.1:0.1:7;
x(round(i/h)+1,1)=i;
if ~mod(i,1)
table(i,1)=i;
end
end
然后测试我返回了这些
table
a=[x(1) x(11) x(21) x(41) x(51) x(61) x(71)]
a=[x(1) x(11) x(21) x(31) x(41) x(51) x(61) x(71)]
它没有找到3作为整数,因为我从不是3,它是3.000 ......但是1,2,4,5,6和7是整数。
答案 0 :(得分:2)
它是浮点数表示问题。当数字以这种方式构建时,您期望正好为3的数字会少量(4.440892e-16)。这是预期的行为,而不是错误,请参阅:http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html