我想比较在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