問題描述
0.1 + 0.2 === 0.3; // false
0.1 + 0.2 === 0.30000000000000004; // true
由于10進制的小數(shù)(部分浮點數(shù))無法用二進制表示奠支,因此在存儲和計算上就會產(chǎn)生誤差馋辈。
解決方案
將浮點數(shù)變成整數(shù)可以解決這個問題。
也就是在計算中倍谜,我們先去掉浮點迈螟,然后再計算,再轉(zhuǎn)成浮點數(shù)尔崔,就能減少一次誤差運算了答毫。
((0.1 * 10) + (0.2 * 10)) / 10 === 0.3; // true
可以直接使用 bignumber.js。