两个值看似相同,但matlab表示不是

时间:2013-07-26 09:22:00

标签: matlab

我无法解释这一点。我有两个具有相同值的变量,但它们并不相同。任何人都可以告诉我我在这里缺少什么吗?

>> y
y =
3.4000
>> x
x =
3.4000
>> y==x
ans =
 0
>> whos x
 Name      Size            Bytes  Class     Attributes
 x         1x1                 8  double              
>> whos y
 Name      Size            Bytes  Class     Attributes
 y         1x1                 8  double   

这对我来说真的很困惑,我发誓这不是一个玩笑。

2 个答案:

答案 0 :(得分:5)

这是因为浮点精度。尝试

format long g

然后再次查看xy。最好将x-y与一些小容差值进行比较,而不是对浮点数进行相等性测试

答案 1 :(得分:3)

您正在比较浮动值,这种活动基本上不会影响您在基本上任何语言中的思考方式,因为计算机会处理浮点值。

对此的解决方案通常是测试值之间的差异是否小于某个小阈值。

有关此问题的Matlab相关讨论,请参阅here