2013-07-26 21 views
0

我無法解釋這一點。我有兩個具有相同值的變量,但它們並不相同。任何人都可以告訴我我在這裏錯過了什麼嗎?兩個值看似相同,但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 

這真的令我費解,我發誓這不是玩笑。

+0

嘗試格式長;打印之前 –

+0

您可能想要閱讀:http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

回答

5

這是因爲浮點精度。嘗試

format long g 

,然後在xy再看看。這是更好地比較x-y一些小的公差值,而不是浮點數

+0

請參閱http://matlab.wikia.com/wiki/FAQ# Why_is_0.3 _-_ 0.2 _-_ 0.1_.28or_similar.29_not_equal_to_zero.3F – am304

3

你比較浮點值做一個平等的測試,不工作,你很是怎麼想的基本上任何語言,由於是如何活動浮點值由計算機處理。

解決此問題的方法通常是測試值之間的差異是否小於某個小閾值。

請參閱here以瞭解有關Matlab的相關討論。

相關問題