提出问题
下面的小数计算精度丢失问题,知道的朋友应该都知道。不过一般都是在后端进行计算再返回给前端进行展示,所以也不会成为问题。
const sum = 0.1 + 0.2
console.log('sum', sum)
// 0.30000000000000004
解决问题
但有时候也需要前端进行计算时,这个问题就需要被解决。
这里推荐使用decimal.js来处理。
import Decimal from 'decimal.js';
// 注意,sum是一个对象,需要调用toString,才能进行输出展示
const sum = Decimal(0.1).plus(0.2).toString();
console.log('sum', sum)
// 0.3
注意
某个版本add
方法如果用0
加上0
会得到00
,需要判断一下。
import Decimal from 'decimal.js';
const num1 = new Decimal(0);
const num2 = 0;
if (num2 !== 0) {
num1.add(num2)
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。