js实现数值计算
JavaScript 数值计算基础
JavaScript 提供多种方式处理数值计算,包括基本算术运算、数学函数库以及高精度计算方案。
基本算术运算
直接使用运算符进行加减乘除和取模运算:
const sum = 1 + 2; // 加法 → 3
const product = 3 * 4; // 乘法 → 12
const remainder = 10 % 3; // 取模 → 1
Math 对象常用方法
内置 Math 对象提供数学函数:
Math.sqrt(16); // 平方根 → 4
Math.pow(2, 3); // 幂运算 → 8
Math.round(3.6); // 四舍五入 → 4
Math.floor(3.6); // 向下取整 → 3
Math.ceil(3.2); // 向上取整 → 4
Math.random(); // 生成 0-1 随机数
处理浮点数精度问题
JavaScript 的浮点数运算可能产生精度误差,需特殊处理:
方案一:扩大为整数运算后还原
const result = (0.1 * 10 + 0.2 * 10) / 10; // 0.3
方案二:使用 toFixed() 控制小数位
const num = (0.1 + 0.2).toFixed(1); // "0.3"(返回字符串)
方案三:引入第三方库
- Big.js:适用于高精度计算
import Big from 'big.js'; new Big(0.1).plus(0.2).toString(); // "0.3"
科学计算与扩展需求
处理大整数
ES2020 引入 BigInt 类型:
const largeNum = BigInt(9007199254740991) + BigInt(1);
复杂数学运算
使用库如 math.js 支持矩阵、复数等运算:
import { evaluate } from 'mathjs';
evaluate('sqrt(16) + log(100)'); // 6
注意事项
- 避免直接比较浮点数,使用误差范围:
Math.abs(0.1 + 0.2 - 0.3) < 1e-10; // true - 数值转换时检查
NaN:isNaN(parseInt("abc")); // true







