Math.log()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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() の使用

js
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)。

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

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

仕様書

Specification
ECMAScript Language Specification
# sec-math.log

ブラウザーの互換性

BCD tables only load in the browser

関連情報