js math实现
数学计算实现
JavaScript 提供了多种内置方法和对象来处理数学运算,包括基本的算术运算、高级数学函数以及处理大数等场景。
基本算术运算
JavaScript 支持标准的算术运算符,如加法(+)、减法(-)、乘法(*)、除法(/)和取模(%)。这些运算符可以直接用于数字计算。
const sum = 5 + 3; // 8
const difference = 10 - 4; // 6
const product = 2 * 6; // 12
const quotient = 15 / 3; // 5
const remainder = 10 % 3; // 1
Math 对象
JavaScript 的 Math 对象提供了多种数学函数和常量,用于执行复杂的数学运算。
const pi = Math.PI; // 3.141592653589793
const sqrt = Math.sqrt(16); // 4
const power = Math.pow(2, 3); // 8
const absolute = Math.abs(-5); // 5
const rounded = Math.round(4.7); // 5
const ceiling = Math.ceil(4.2); // 5
const floor = Math.floor(4.9); // 4
const random = Math.random(); // 随机数 0 <= x < 1
三角函数
Math 对象还提供了三角函数,如 sin、cos、tan 等,这些函数使用弧度作为单位。
const sine = Math.sin(Math.PI / 2); // 1
const cosine = Math.cos(Math.PI); // -1
const tangent = Math.tan(Math.PI / 4); // 0.9999999999999999
对数与指数
Math 对象支持对数和指数运算,如自然对数(log)、以 10 为底的对数(log10)以及指数函数(exp)。
const naturalLog = Math.log(Math.E); // 1
const log10 = Math.log10(100); // 2
const exponential = Math.exp(1); // 2.718281828459045
大数处理
对于大数运算,JavaScript 提供了 BigInt 类型,可以处理超出 Number 类型范围的整数。
const bigInt = 9007199254740991n + 1n; // 9007199254740992n
const bigSum = BigInt("12345678901234567890") + BigInt("98765432109876543210"); // 111111111011111111100n
数值转换与比较
JavaScript 提供了多种方法将字符串转换为数字,并比较数值的大小。
const parsedInt = parseInt("10", 10); // 10
const parsedFloat = parseFloat("10.5"); // 10.5
const max = Math.max(1, 2, 3); // 3
const min = Math.min(1, 2, 3); // 1
精度处理
对于浮点数精度问题,可以使用 toFixed 方法或乘以 10 的幂次方后取整再除以 10 的幂次方。
const fixed = (0.1 + 0.2).toFixed(2); // "0.30"
const precise = Math.round((0.1 + 0.2) * 100) / 100; // 0.3
数学公式实现
对于复杂的数学公式,可以将其分解为多个步骤,使用 JavaScript 的数学函数逐步计算。
// 计算圆的面积
const radius = 5;
const area = Math.PI * Math.pow(radius, 2); // 78.53981633974483
// 计算二次方程的根
const a = 1, b = -3, c = 2;
const discriminant = Math.pow(b, 2) - 4 * a * c;
const root1 = (-b + Math.sqrt(discriminant)) / (2 * a); // 2
const root2 = (-b - Math.sqrt(discriminant)) / (2 * a); // 1






