【解決方案】js小數運算出現多位小數問題

1、問題描述

在一次後臺返回數據進行百分率轉換過程當中,出現部分數據顯示異常,好比:函數

2、解決方案

一、最快最簡便的方法 直接調用 toFixed() 函數進行四捨五入爲指定小數位數的數字。ip

二、也能夠經過操做字符串來進行計算或拼接,具體自行探索。字符串

3、問題緣由

浮點數值的最高進度是17位小數,但在進行運算的時候其精確度卻遠遠不如整數;整數在進行運算的時候都會轉成10進制; 而Java和JavaScript中計算小數運算時,都會先將十進制的小數換算到對應的二進制,一部分小數並不能完整的換算爲二進制,這裏就出現了第一次的偏差。待小數都換算爲二進制後,再進行二進制間的運算,獲得二進制結果。而後再將二進制結果換算爲十進制,這裏一般會出現第二次的偏差。class

因此 0.1+0.2 != 0.3後臺

相關文章
相關標籤/搜索