javascript小數乘法精確率問題?

Tags: 問題, 小數, 乘法,

做前端頁面開發的經常會遇到數值的乘法計算,帶小數位計算會出現值溢位的問題,如:

100

JS裡做小數的乘法運算時會出現浮點錯誤,具體可以測試一下:

結果是251.89999999999998 而不是251.9 這個問題想必有很多人為之頭痛。那麼如何解決呢?

網上那些經常轉載來,轉載去的解決方式,其實都存在弊端,先看看網上那種弊端的解決方式吧。

1、 解決問題的大概思路就是,先把因數放大為整數,最後再除以相應的倍數,這樣就能得到正確的結果了。

其實這種方式不完全正確,雖說可以解決一部分小數的乘法問題,但是還是有特例的,比如按照這種解決思路的話,小數點後面有幾位小數必須擴大10的多少次方倍,如果這個值是個動態的,豈不是顯得很繁瑣。

下面給出萬能解決方式。

此處藉助toFixed()方法來四捨五入保留小數位。

只要乘數足夠大,皆能解決!

相關問題答案