JS精度問題,必須掌握!


實例回顧:
打開瀏覽器控制台,輸入  0.1+0.2 計算結果居然是 0.30000000000000004,這是為什么???
對這個結果感到很意外?是的,就是js精度的問題。顯然不是我們想要的結果,而是希望得到0.3
(0.1*10+0.2*10)/10 == 0.3  //true;

方法一:使用toFixed()指定要保留的小數位數

(0.1+0.2).toFixed(1) = 0.3;
這個方法toFixed是進行四舍五入的也不是很精准,對於計算金額這種嚴謹的問題不推薦使用,而且不同瀏覽器對toFixed的計算結果也存在差異。

方法二:把需要計算的數字升級(乘以10的n次冪)成計算機能夠精度識別的整數,等計算完畢后在降級(除以10的n次冪),這是大部分編程語言處理精度差異的通用方法。

核心思路:把小數方法為整數(乘),進行算術運算,再縮小為小數(除)
 
如果文章對你有幫助,麻煩幫忙點個贊哦!嘿嘿!做一個靠譜的技術博主!


免責聲明!

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



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