我想比較在while
循環整數,如下圖所示:Matlab的 - 整數比較錯誤
Sigma_Wanted_Start = 0.000;
Sigma_Wanted_End = 0.009;
Sigma_Increment = 0.001;
Sigma_Current = 0.000;
while (Sigma_Wanted_End ~= Sigma_Current)
Sigma_Current = Sigma_Current + Sigma_Increment;
end
如果Sigma_Wanted_End == 0.009
,那麼我們將停止for循環。問題是,即使Sigma_Wanted_End == Sigma_Current
,該陳述顯示爲true
。
另一個奇怪的是,如果Sigma_Wanted_End == 0.008
,那麼while循環會停止。
我認爲這是整數和double
之間的差異,所以我在所有數字上都使用了double
,但問題仍然存在。
有人知道爲什麼嗎?
在此先感謝
這些值並不像整數給我。 –
Sigma_Current是0,沒有小數,所以我加了0.000以查看問題是否存在。但問題仍然存在。 – user1157751
你不會用浮點數來做到這一點。見例如http://floating-point-gui.de/errors/comparison/以獲取更詳細的解釋。另外,寫'x = 0'不會導致'x'是一個整數數據類型。 – sebastian