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


你可能感兴趣的文章