Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Math.log1p() は静的メソッドで、 1 + x の(e を底とした)自然対数を返します。ここで x は引数です。
∀x>−1,𝙼𝚊𝚝𝚑.𝚕𝚘𝚐𝟷𝚙(𝚡)=ln(1+x)\forall x > -1,\;\mathtt{\operatorname{Math.log1p}(x)} = \ln(1 + x)-1 以上の数値です。
1 + x の(e を底とした)自然対数です。 x が -1 の場合は、 -Infinity を返します。 x < -1 の場合は、 NaN が返されます。
x の値が非常に小さかった場合、 1 を加えると有効精度が減少します。 JS で使用する倍精度浮動小数点型の精度は 15 桁です。 1 + 1e-15 = 1.000000000000001 ですが、 1 + 1e-16 = 1.000000000000000 となり、 15 桁を超えた桁は四捨五入されるため、正確に 1.0 となります。
log(1 + x) を計算すると、 x が小さければ、 x にとても近い答えになるはずです。 limx→0log(1+x)x=1\lim_{x \to 0} \frac{\log(1+x)}{x} = 1 だからです。 Math.log(1 + 1.1111111111e-15) を計算すると、 1.1111111111e-15 に近い答えが得られるはずです。しかし、 1.00000000000000111022 の対数を取ることになります (四捨五入は二進数なので、時に醜い結果になることがあります) ので、答えは 1.11022…e-15 となり、正しい数字は 3 桁だけです。もし、代わりに Math.log1p(1.1111111111e-15) を計算した場合は、もっとずっと正確な答えである 1.1111111110999995e-15 が得られ、 15 桁の正しい数字が得られます (この場合は実際には 16 桁です)。
x の値が -1 未満であった場合、返値は常に NaN です。
log1p() は Math の静的メソッドであるため、生成した Math オブジェクトのメソッドとしてではなく、常に Math.log1p() として使用するようにしてください (Math はコンストラクターではありません)。
| ECMAScript® 2027 Language Specification # sec-math.log1p |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年10月2日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.