このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Math.expm1()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Math.expm1() は静的メソッドで、e のある数値のべき乗から 1 を引いた値を返します。
In this article
試してみましょう
console.log(Math.expm1(0));// 予想される結果: 0console.log(Math.expm1(1));// 予想される結果: 1.718281828459045console.log(Math.expm1(-1));// 予想される結果: -0.6321205588285577console.log(Math.expm1(2));// 予想される結果: 6.38905609893065構文
Math.expm1(x)引数
x数値です。
返値
ex - 1 を表す数値で、 e は自然対数の底です。
解説
x の値が非常に小さい場合、1 を加えることで精度が縮小したり、なくなったりすることがあります。 JS で使用する倍精度浮動小数点数では、約 15 桁の精度が得られます。 1 + 1e-15 = 1.000000000000001ですが、1 + 1e-16 = 1.000000000000000となり、 15 桁以降の数字は丸められるため、この演算ではちょうど 1.0 となります。
を計算する場合、ここで x が 0 にとても近い場合、 1 + x にとても近い答えが得られるはずです。それは、 だからです。Math.exp(1.1111111111e-15) - 1 を計算すると、1.1111111111e-15 に近い答えが得られます。代わりに、Math.exp の結果の有効数字が最も大きい数字であるため、単位桁は1 となり、最終的な値は1.1102230246251565e-15 となり、正しい数字は 3 桁だけとなります。Math.expm1(1.1111111111e-15) の代わりに計算すると、より正確な答え1.1111111111000007e-15 が得られます。これは 11 桁の有効数字になります。
expm1() はMath の静的メソッドであるため、生成したMath オブジェクトのメソッドとしてではなく、常にMath.expm1() として使用するようにしてください (Math はコンストラクターではありません)。
例
>Math.expm1() の使用
Math.expm1(-Infinity); // -1Math.expm1(-1); // -0.6321205588285577Math.expm1(-0); // -0Math.expm1(0); // 0Math.expm1(1); // 1.718281828459045Math.expm1(Infinity); // 無限大仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-math.expm1> |