math.js官网
/**
网上查找到的js精度异常的例子
*/
console.log( 0.02 - 0.03 ); // -0.009999999999999998
console.log( 1 - 0.8 ); // 0.19999999999999996
console.log( 6 * 0.7 ); // 4.199999999999999
console.log( 0.1 + 0.2 ); // 0.30000000000000004
console.log( 0.1 + 0.7 ); // 0.7999999999999999
console.log( 1.2 / 0.2 ); // 5.999999999999999
/**
使用高精度计算
*/
// 使用 .eval() 高精度计算
console.log(math.simplify('0.02 - 0.03').eval()); // -0.01
console.log(math.simplify('1 - 0.8').eval()); // 0.2
console.log(math.simplify('6 * 0.7').eval()); // 4.2
console.log(math.simplify('0.1 + 0.2').eval()); // 0.3
console.log(math.simplify('0.1 + 0.7').eval()); // 0.8
console.log(math.simplify('1.2 / 0.2').eval()); // 6
// 判断两个值相等
console.log(math.simplify('0.1 + 0.2 == 0.3').eval()); // 1 (真)
// 使用 .toString() 输出计算方式
console.log(math.simplify('0.02 - 0.03').toString()); // 等效于: -1 / 100