Math.expm1()
基线 广泛可用
此功能已建立良好,并在许多设备和浏览器版本上运行。自 2015 年 7 月.
报告反馈
试一试
语法
\mathtt{\operatorname{Math.expm1}(x)} = \mathrm{e}^x - 1
Math.expm1(x)
js
e
-
参数
一个数字。
返回值
描述
一个表示 ex - 1 的数字,其中 e 是 自然对数的底数。
对于非常小的 *x* 值,加 1 会减少或消除精度。JS 中使用的双精度浮点数为您提供约 15 位的精度。1 + 1e-15 = 1.000000000000001,但 1 + 1e-16 = 1.000000000000000,因此在该算术中正好为 1.0,因为超过 15 位的数字会被舍入。\mathrm{e}^x\lim_{x \to 0} \frac{\mathrm{e}^x - 1}{x} = 1
. 如果您计算 Math.exp(1.1111111111e-15) - 1
,您应该得到一个接近 1.1111111111e-15
的答案。相反,由于 Math.exp
的结果中最重要的数字是单位数字 1
,因此最终的值变为 1.1102230246251565e-15
,只有 3 位数字是正确的。如果您改为计算 Math.exp1m(1.1111111111e-15)
,您将获得一个更精确的答案,1.1111111111000007e-15
,具有 11 位的正确精度数字。
示例
由于 expm1()
是 Math
的静态方法,因此您始终使用 Math.expm1()
来调用它,而不是作为您创建的 Math
对象的方法(Math
不是构造函数)。
\mathtt{\operatorname{Math.expm1}(x)} = \mathrm{e}^x - 1
Math.expm1(-Infinity); // -1
Math.expm1(-1); // -0.6321205588285577
Math.expm1(-0); // -0
Math.expm1(0); // 0
Math.expm1(1); // 1.718281828459045
Math.expm1(Infinity); // Infinity
规范
使用 Math.expm1() |
---|
规范 # ECMAScript 语言规范 |
浏览器兼容性
sec-math.expm1