如果JavaScript的 「嚴格比較」 運營商和傳統的人之間的主要區別是強制類型轉換,爲什麼
0.1+0.2===0.3;
將返回false ?
如果JavaScript的 「嚴格比較」 運營商和傳統的人之間的主要區別是強制類型轉換,爲什麼
0.1+0.2===0.3;
將返回false ?
在Firefox和Chrome,0.1 + 0.2
是0.30000000000000004
,這不等於0.3
。這大概是由於它不可能完全代表0.1
作爲浮點數。
因爲0.1是棘手
它
不合理
二進制(見註釋)重複
編輯
其實我在這裏即興發揮,我不知道那是肯定的。是否有Math.boffin可以反證或提供證明?
將是非常有趣
「非理性」是不正確的 - 無論您存儲什麼基礎,1/10都是一個理性數字。 ,它*是一個反覆出現的二進制數,所以不可能使用正常的浮點表示法來精確地表示它。 – 2010-02-16 00:37:35
十進制中的0.1是0.00011001100110011 ...以二進制形式重複出現。 – 2010-02-16 00:40:31
理性被表達爲一小部分 - 愚蠢的我。你能否介紹一下爲什麼它會再次發生? – meouw 2010-02-16 00:41:30
http://stackoverflow.com/questions/588004/is-javascripts-math-broken – Sampson 2010-02-16 00:33:48