1.看截圖的結果,Math。sin(Math.PI)竟然並不是等於0
為什么呢?
1、Math.sin() 的參數,必須是一個以弧度表示的角,角度數×Math.PI/180即為當前角度數的弧度值。30度角的sin()的寫法為:Math.sin(30*Math.PI/180)
2、180度轉換成弧度理論上等於Math.PI,但由於cpu在運算的時候,會進行近似處理,所以並不相等。
3、常規代數里,是等於0,但是cpu運算的時候,只是近似與0
4、計算機語言數值型數據都是二進制表達的,所以在進行浮點計算時候是很難精確的,Math.sin(Math.PI)是通過微積分計算公式計算出來的,會存在精度上面的誤差結果是:1.2246063538223772e-16
綜上,浮點數的運算,往往並不是我們期望的結果,可以通過Math.round() 函數來解決。
所以,如下圖,才能得到我們要的結果: