理論上用有限的空間來存儲(chǔ)無限的小數(shù)是不可能保證精確的河劝,但我們可以處理一下得到我們期望的結(jié)果
當(dāng)你拿到 1.4000000000000001 這樣的數(shù)據(jù)要展示時(shí)危纫,建議使用 toPrecision 湊整并 parseFloat 轉(zhuǎn)成數(shù)字后再顯示遗菠,如下:
parseFloat(1.4000000000000001.toPrecision(12)) === 1.4 // True
封裝成方法就是:
function strip(num, precision = 12) {
return +parseFloat(num.toPrecision(precision));
}
最后還可以使用第三方庫僵井,如Math.js海铆、BigDecimal.js