做前端頁面開發的經常會遇到數值的乘法計算,帶小數位計算會出現值溢位的問題,如:
100
JS裡做小數的乘法運算時會出現浮點錯誤,具體可以測試一下:
結果是251.89999999999998 而不是251.9 這個問題想必有很多人為之頭痛。那麼如何解決呢?
網上那些經常轉載來,轉載去的解決方式,其實都存在弊端,先看看網上那種弊端的解決方式吧。
1、 解決問題的大概思路就是,先把因數放大為整數,最後再除以相應的倍數,這樣就能得到正確的結果了。
其實這種方式不完全正確,雖說可以解決一部分小數的乘法問題,但是還是有特例的,比如按照這種解決思路的話,小數點後面有幾位小數必須擴大10的多少次方倍,如果這個值是個動態的,豈不是顯得很繁瑣。
下面給出萬能解決方式。
此處藉助toFixed()方法來四捨五入保留小數位。
只要乘數足夠大,皆能解決!