プログラミング言語などで log が常用対数(底は10)なのか自然対数(底はe)なのかという問題です。
導入
は の逆関数で、この b は底(てい)と呼ばれます。英語では base です。
底は 1 以外の正の数でなければなりませんが、実際に使われるのは 10, e, 2 くらいです。
x は正の数です。複素数にも拡大できますが、多価関数となりややこしくなりますので、ここでは止めておきます。
は常用対数、 は自然対数と呼ばれます。
この e はネイピア数と呼ばれる定数で、定義は
あるいは
で、16桁の近似値は 2.718281828459045 (鮒一鉢二鉢一鉢二鉢至極美味しい)です。
"自然対数の底" という循環定義的な呼び方をされることも多いです。
10 や e の底はよく省略されます。省略されているとき、それが常用対数であるか、自然対数であるかは分野によります。
常用対数を log で表したとき、自然対数は ln で表されます。
本題
ほとんどのプログラミング言語では log は自然対数です。FORTRAN, COBOL, Common Lisp, PL/I, C, VBA を確認しました。最近の言語は C に合わせているので、それらも同じです。
常用対数は log10 で用意されていることも、log(x, 10) が使用できる場合もあります。そうでないときでも底の変換公式
により、log(x) / log(10.0) で計算できます。
例外的なのは Pascal で、自然対数が ln で用意されています。Pascal の先祖の Algol も同様のようです。
一方 Excel ワークシート関数では LOG(x,b) で b の省略時 10 となるため、LOG は常用対数に見えます。自然対数 LN も用意されています。google スプレッドシートでも同じでした。
SQL は統一されてません。注意してください。