JavaScript中的科学记数法(Scientific Notation)是一种表示极大或极小数值的简洁方式,通过基数和10的幂次组合实现。以下是详细说明和示例:
基础语法与表示
科学记数法采用 aEb 形式,其中:
a是基数(1 ≤ |a| < 10),b是指数(整数),E或e表示“乘以10的幂次”。
例如:
1e3 // 等价于 1 * 10:ml-citation{ref="3" data="citationList"} = 1000
2.5e-2 // 等价于 2.5 * 10^-2 = 0.025自动转换场景
JavaScript在以下情况会自动将数值转为科学记数法:
极小数值(小于1且小数点后超过6个零):
0.0000003 // 显示为 3e-7
极大数值(整数位超过21位):
1234567890123456789012 // 显示为 1.2345678901234568e+21
运算与转换
直接运算:科学记数法可参与常规算术运算:
let result = 3e5 * 2e3; // 结果为 6e8 (600000000)
字符串转换:
使用
Number()或+将科学计数法字符串转为数字:
Number("1.23e6") // 输出 1230000使用
toString()或toFixed()控制输出格式:
(0.0000001).toString() // 默认返回 "1e-7" (1e7).toFixed(0) // 返回 "10000000"
实际应用示例
避免精度问题:科学计数法可减少浮点数误差:
let sum = 1e-16 + 2e-16; // 结果为 3e-16
前端展示处理:需将科学计数法转为易读格式:
function formatNumber(num) {
return num.toExponential(2); // 强制保留两位小数科学计数(如 "1.23e+5")
}注意事项
科学计数法在内存和计算效率上有优势,但直接展示可能不直观
大整数(如超过2)需使用
BigInt或第三方库(如bignumber.js)处理