我无法解释这一点。我有两个具有相同值的变量,但它们并不相同。任何人都可以告诉我我在这里缺少什么吗?
>> 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
这对我来说真的很困惑,我发誓这不是一个玩笑。
答案 0 :(得分:5)
这是因为浮点精度。尝试
format long g
然后再次查看x
和y
。最好将x-y
与一些小容差值进行比较,而不是对浮点数进行相等性测试
答案 1 :(得分:3)
您正在比较浮动值,这种活动基本上不会影响您在基本上任何语言中的思考方式,因为计算机会处理浮点值。
对此的解决方案通常是测试值之间的差异是否小于某个小阈值。
有关此问题的Matlab相关讨论,请参阅here。