Math.sin(Math.PI)為什么不等於0?


 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() 函數來解決。

 所以,如下圖,才能得到我們要的結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM