Math.log()

Math.log() 関数は、 (e を底とした) 数値の自然対数を返します。

x>0,Math.log(x)=ln(x)=the uniqueysuch thatey=x\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique} \; y \; \text{such that} \; e^y = x

JavaScript の Math.log() 関数は、数学の ln(x) と同等です。

構文

Math.log(x)

引数

x
数値です。

返値

(e を底とした) 与えられた数値の自然対数です。数値が負の数であった場合、 NaN が返されます。

解説

x の値が 0 であった場合、返値は常に -Infinity です。

x の値が 0 未満であった場合、返値は常に NaN です。

log()Math の静的メソッドであるため、生成した Math オブジェクトのメソッドとしてではなく、常に Math.log() として使用するようにしてください (Math はコンストラクターではありません)。

2 または 10 の自然対数が必要な場合は、定数の Math.LN2 または Math.LN10 を使用してください。 2 や 10 を底とした対数が必要な場合は、 Math.log2() または Math.log10() を使用してください。他の数を底とした対数が必要な場合は、下記の例にあるように Math.log(x) / Math.log(otherBase) を使用してください。事前に 1 / Math.log(otherBase) を計算しておいた方がいいかもしれません。

Math.log() の使用

Math.log(-1); // NaN, out of range
Math.log(0);  // -Infinity
Math.log(1);  // 0
Math.log(10); // 2.302585092994046

様々な底による Math.log() の使用

以下の関数は、 x を底とした y の対数を返します (すなわち logxy\log_x y)。

function getBaseLog(x, y) {
  return Math.log(y) / Math.log(x);
}

getBaseLog(10, 1000) を実行すると、実際の答えが 3 であるのに対し、浮動小数点の丸め処理により近似値の 2.9999999999999996 を返します。

仕様書

仕様書
ECMAScript (ECMA-262)
Math.log の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
logChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100

凡例

完全対応  
完全対応

関連情報