在 JavaScript 中,数字类型是采⽤双精度浮点数表示的,由于双精度浮点数只有 52 位精度,因此在进⾏精度较⾼的数值计算时,可能会出现数字精度丢失的问题。
console.log(0.1 + 0.2); // 输出结果为 0.30000000000000004
可以采用以下方法解决问题:
- 转换为整数进行计算
- 使用第三方库,例如 decimal.js 和 big.js 等第三⽅库
- 使⽤ toFixed ⽅法:toFixed ⽅法将数字转换成指定位数的字符串,例如将 0.1 和 0.2 转换成⼀位⼩数的字符串再进⾏相加。