Node 浮点数误差
文章目录

NodeJS: 关于浮点数运算

有些时候在后台运算浮点数的时候会出现 0.2 +0.3 = 0.500000001 的情况

出现这种情况主要是浮点数无限位数的忽略

解决方法其实也不难, 就是将一些数字乘以 10 次面, 然后再开方

但是肯定有其他库已经实现了类似功能

Decimal.js

1
npm install --save decimal.js

注意一下这个裤子名称叫做 decimal.js , 而不是 decimal , 使用的时候也要带上这个扩展名

使用方法

1
2
3
4
5
6
7
8
9
10
let a = new Decimal(0.5);

let b = a.times(5); //2.5

let c = a.plus(5); //5.5

let c = a.minus(0.2); //0.3

a.plus(3); // 这个地方注意 a 没有变
a = a.plus(3); // 这样赋值给 a 数字才会变化