2013-08-23 76 views
0

我不知道發生了什麼,但是當我在代碼中使用i = 0.1:0.1:7時,我得到整數1和2,然後跳過3,但得到4,5,6和7沒有問題。Matlab增量錯誤?

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

您試圖實現的是什麼? – Dan

+0

這不是一個錯誤,它與[浮點運算](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)有關。你認爲*是'3'實際上是['3.00000000000000044408920985'](http://docs.python.org/2/tutorial/floatingpoint.html)。 – Schorsch

回答