我已經看到了一些這樣的答案,但我仍然沒有找到一個適合我的方法。當我試試這個:Math.cos對大數值給出了不好的結果
return Math.cos(270.* Math.PI/180);
我得到
-1.8369701987210297E-16
同時: -
Math.cos(Math.toRadians(270.) // gives:-1.8369701987210297E-16
我期待這給0
我已經看到了一些這樣的答案,但我仍然沒有找到一個適合我的方法。當我試試這個:Math.cos對大數值給出了不好的結果
return Math.cos(270.* Math.PI/180);
我得到
-1.8369701987210297E-16
同時: -
Math.cos(Math.toRadians(270.) // gives:-1.8369701987210297E-16
我期待這給0
數量-1.8369701987210297E-16
是的scientific representation一個數字是極其接近z ERO。它相當於這個數字:
-0.000000000000000018369701987210297
浮點運算不精確。您應該期望很小的表示錯誤。特別是不可能像pi一樣將irrational number完全表示爲浮點數。
另一個浮點數不精確的例子。您將其轉換並導致一個不完美的0值。然而,它接近於零。
它與大的價值無關。在浮點數的情況下,總是期望有微小的差異。
Math.PI
是一個近似值,所以您將得到一個近似值zero
。
嘗試使用誤差範圍epsilon
,其值近似爲1E-16
。 因此,如果cos結果低於epsilon,則意味着它爲空。
您也可以開發自己的修改cos
函數。
這是因爲浮點參數。 – maverik