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

構文

Math.log(x)

パラメーター

x
数値

戻り値

引数として与えた数の自然対数 (底は e) を返します。与えた数が負である場合 NaN を返します。

説明

x の値が負である場合、戻り値は常に NaN になります。

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

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 1st Edition (ECMA-262) 標準 初回定義。JavaScript 1.0 内で実装。
ECMAScript 5.1 (ECMA-262)
Math.log の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
Math.log の定義
標準  
ECMAScript Latest Draft (ECMA-262)
Math.log の定義
ドラフト  

ブラウザー実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) (有) (有) (有) (有)
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: dskmori, unarist, teoli, ethertank, Potappo
 最終更新者: dskmori,