0
意外Math.cos行爲的90度的餘弦值是0困惑過在Javascript
我理解JavaScript的Math.cos
採用弧度,所以我嘗試:
Math.cos(90 * Math.PI/180)
爲什麼這個產量6.123233995736766e-17
代替爲0?
意外Math.cos行爲的90度的餘弦值是0困惑過在Javascript
我理解JavaScript的Math.cos
採用弧度,所以我嘗試:
Math.cos(90 * Math.PI/180)
爲什麼這個產量6.123233995736766e-17
代替爲0?
6.123233995736766e-17
本質上是0
。這是0.00000000000000006123233995736766
。使用IEEE浮點數時,這種小錯誤是完全正常的。
解決方法是不要完全比較數字,但要比較它們是否在您期望的範圍內。例如。
var result = Math.cos(90 * Math.PI/180);
if (Math.abs(result - 0) < 1e-16) {
// Test passed, result is effectively 0
}
的- 0
什麼也不做,但更普遍的是- x
你怎麼會比較x
。您正在嘗試與0
進行比較,因此我使用了- 0
,但您可以將其關閉並獲得相同的結果。