C# 統計・微分積分・線形代数への道
目次→http://1studying.blogspot.jp/2017/08/senkei-index.html#kuw17
「常用対数と自然対数、exp、log、ln」について説明、メモ。
ここでは、
「×」を「*」
「÷」や「分数」を「/」
で表現します。
真数と対数とは
「真数」と「対数」を求めるには以下のように計算を行います。
それぞれの「答え」は、
「真数を求める = 8」(2の3乗は?、?の答えは8)
「対数を求める = 3」(2の?乗は8、?の答えは3)
となります。
「底、真数、指数、対数」はそれぞれ以下の部分を指す名称です。
「指数」と「対数」は同じ意味を指す言葉ですが、
言い回しによって使い分けます。
関数電卓で「対数log」を計算
「log」は「対数」が知りたい時に使います。
「log底真数は対数乗」(底の対数乗が真数)
と覚えます。
(「底(てい)」が何乗されて「真数」になるか=「対数」)
「関数電卓」で「対数」を求める際は、
「log」の「底(てい)」を入力しないで計算を行う事に注意して下さい。
下図のように「logba = log(a)/log(b) = 対数」として計算します。
例えば
「log28」は「ろぐ に の はち」
のように読みます。
「log28」を「関数電卓」で計算する場合、
「log(8) / log(2) = 3」
と計算します。
結果、対数が「3」となり、
「2を3乗すると8になる」
事が求まりました。
「log」の具体的な計算例は後述『「底の計算公式」計算例』でやるとして、
まずは、
「関数電卓」で使われる「log()」は「常用対数log10」の省略系である
という事を説明していきます。
「常用対数」について…(log10)
「常用対数log10」とは「10を底(てい)とする対数」の事です。
「関数電卓」で使用される「log」は、
「底(てい)」を指定しないと「常用対数log10」として扱います。。
つまり、
↓「log101000」のイメージ
「関数電卓」によっては、
「log(10,1000)」など「底(てい)」を明示入力出来る機種もありますが、
通常は「log(1000)」のように入力します。
(「常用対数log10」の他に、
「自然対数loge」という「ネイピア数eを底(てい)とする対数」も存在します)
注意!
C#のプログラムでは
「Math.Log10(8)」とすると「常用対数log108」となり、
「Math.Log(8)」とした場合「自然対数loge8」として解釈されます。
つまり、
「関数電卓」では「底(てい)」を省略時「常用対数log10」として扱いますが、
「プログラム」では「底(てい)」を省略時「自然対数loge」として扱います。
「関数電卓」と「プログラム」で省略時の解釈が逆になるので注意が必要です。
後述する
「C#で常用対数(log10)や自然対数(logeやln)を扱う」
の項でC#での記述例を記載します。
関数電卓の記述で統一
今後学ぶ「微分」などの「ネイピア数e」を頻繁に使う式では、
「自然対数loge1000」の式の方を「log1000」と省略する事もあります。
この場合も「関数電卓」とは違う解釈となる為注意が必要です。
このブログでは混乱しないように、
厳格に定められた「関数電卓」の記述方式に統一して説明を行います。
「対数log」の公式4パターン
・定義
「対数log」の公式を4パターン紹介します。
・「logの性質」となる公式
・「log真数の積」から「対数logの和」への公式
・「log真数の商」から「対数logの差」への公式
・「log真数の累乗」から「実数と対数logの積」への公式
「底の変換公式」
この公式は「log」を理解する上で一番重要な公式となりますので、
他の公式とは別に説明します。
定義
「対数log」から「対数logの商」への「底の変換公式」
理解する為にも以下の計算例を確認して下さい。
「底の変換公式」計算例
ここでは「底の変換公式」を使い「対数」を求める際、
「関数電卓」や「筆算」などを使い、具体的な計算を行う例を示します。
・計算例1
これと同じ式を
「cの底(てい)」の数字を変えて計算しても同じ答えとなります。
「筆算」で以下のように計算する事が可能です。
結果「cの底(てい)」を幾つにしようが答えは同じ、
「log28」の対数は「3」
となる事が分かります。
・計算例2
「底(てい)」が違う「log」同士の積(掛け算)は、
以下のように「底(てい)」を揃えて分数化して計算を行います。
結果、
「log63・log336」の対数は「2」
となります。
このような「底(てい)」が違う「log」同士の積(掛け算)の場合は、
「底(てい)」が明示入力できるタイプの「関数電卓」があると、
計算がとても楽ですね。
常用対数表と自然体数表
「筆算」でlogの計算を求めるのに、
「常用対数表」や「自然体数表」という表を使って調べる方法もあります。
例えば「常用対数表」で「5.02」という数値を調べれば、
「約0.701」とう答えを知る事が出来、
「log105.02 ≒ 0.701」
と分かります。
ただ、
「関数電卓」で計算すればもっと簡単に正確な答えが出せる為、
「常用対数表」や「自然体数表」の読み方はここでは説明しません。
興味があれば下のリンク先を調べてみて下さい。
→常用対数表の使い方
https://www.khk.or.jp/activities/regalexamination_course/dl/taisuuhyou.pdf
→【対数】「対数表」の見方
http://oto-suu.seesaa.net/article/174112556.html
「ネイピア数e(exp)」
「ネイピア数e」は「自然対数e」や「自然対数の底」とも言われる
「定数」(決められた数字)です。
小数点以下の少数が書き切れないπなどと同じ扱いで、
「e」の数式記号で表記される今後結構重要となる「定数」です。
(微分積分でとても良く使われます)
「e(exp)」の由来は「exponential(指数の)」という意味から来ているそうです。
「ネイピア数e」の別の記述方法
また、
「自然対数」について…(loge又はlnログナチュラル)
「自然対数」とは「ネイピア数eを底(てい)とする対数」の事です。
これは「loge」の事を指すのですが、
「関数電卓」では省略して「ln」(ログナチュラル)を使用します。
つまり、
「関数電卓」によっては、
「log(e,1)」など「底(てい)」を明示入力出来る機種もありますが通常「ln」を使います。
(「自然対数loge」の他に、
「常用対数log10」という「10を底(てい)とする対数」も存在します)
注意!
C#のプログラムでは
「Math.Log10(8)」とすると「常用対数log108」となり、
「Math.Log(8)」とした場合「自然対数loge8」として解釈されます。
つまり、
「関数電卓」では「底(てい)」を省略時「常用対数log10」として扱いますが、
「プログラム」では「底(てい)」を省略時「自然対数loge」として扱います。
「関数電卓」と「プログラム」で省略時の解釈が逆になるので注意が必要です。
後述する
「C#で常用対数(log10)や自然対数(logeやln)を扱う」
の項でC#記述例を記載します。
「常用対数(log10)」と「自然対数(logeやln)」を使用する時に
理解しておきたい定義を改めてまとめておきます。
常用対数の定義
「常用対数(log10)」の定義
自然対数の定義
「自然対数(logeやln)」の定義
対数関数
自然対数 ln(x)、常用対数 log(x)、aを底とする対数 log_a(x)の対数関数を計算
参考→http://keisan.casio.jp/exec/system/1260332465
C#での対数使用例
C#では
「常用対数(log10)」を使用する場合は、
「Math.Log10(8)」や「1.0/Math.Log(10,8)」
(「関数電卓」では「log(8)」や「log(10,8)」)
などと記述します。
「自然対数(loge又はlnログナチュラル)」を使用する場合は、
「Math.Log(8)」や「1.0/Math.Log(Math.E,8)」
(「関数電卓」では「log(e,8)」や「ln(8)」)
などと記述します。
C#と関数電卓でのlogの違い
「log」の解釈は「関数電卓」と「C#」で変わります。
「関数電卓」では「底(てい)」を省略時「常用対数(log10)」として扱います。
「プログラム」では「底(てい)」を省略時「自然対数(loge又はln)」として扱います。
「関数電卓」と「プログラム」で省略時の解釈が逆になるので注意が必要です。
更に、
「プログラム」上で「底(てい)」を明示して計算する時は、
「1.0」から割り数値を逆数にする必要があります。
この点も注意が必要となります。
「E」や「e」を「指数表記」として扱う!?
ちょっとややこしい話なのですが「PCや関数電卓」などでは
「E又はe」の表記を「ネイピア数e」としてではなく、
「×10?」の「指数表記」として扱う事があります。
例えば
「関数電卓」によっては「指数表記e」を「ネイピア数e」と区別する為に
「100000」を「1×105」
「1500000」を「1.5×106」
のように、
あえて「指数表記e」を使わず分かりやすく表示してくれる電卓もあります。
「C#」のプログラムでは数値と文字列を相互変換する時に、
意図せず「指数表記e」が付いたり外れたりする事があります。
明示的に「指数表記e」を付けたり外したりする為には、
以下ような記述が必要となります。
以下のサイトを参考にしました。
対数関数
自然対数 ln(x)、常用対数 log(x)、aを底とする対数 log_a(x)の対数関数を計算
http://keisan.casio.jp/exec/system/1260332465
対数とは何なのかとその公式・メリットについて。対数をとるとはどういう意味か?
https://atarimae.biz/archives/12581
対数(LOG)の計算と公式!これでもうバッチリ!!
http://kenyu.red/archives/3132.html
対数 log の公式と計算
https://sci-pursuit.com/math/logarithm-formulae-and-calculation.html
logの計算機での計算方法
http://support.casio.jp/answer.php?cid=004002001001&qid=26860&num=10
logとlnの違い
https://okwave.jp/qa/q224511.html
数学記号exp,ln,lgの意味
https://mathtrain.jp/explnlg
【指数・対数関数】指数と対数の関係
http://kou.benesse.co.jp/nigate/math/a14m1208.html
数学記号の表
https://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E8%A8%98%E5%8F%B7%E3%81%AE%E8%A1%A8
数式記号の読み方・表し方
http://izumi-math.jp/sanae/report/suusiki/suusiki.htm
目次→http://1studying.blogspot.jp/2017/08/senkei-index.html#kuw17
「常用対数と自然対数、exp、log、ln」について説明、メモ。
ここでは、
「×」を「*」
「÷」や「分数」を「/」
で表現します。
底、真数、指数、対数
真数と対数とは
「真数」と「対数」を求めるには以下のように計算を行います。
それぞれの「答え」は、
「真数を求める = 8」(2の3乗は?、?の答えは8)
「対数を求める = 3」(2の?乗は8、?の答えは3)
となります。
「底、真数、指数、対数」はそれぞれ以下の部分を指す名称です。
「指数」と「対数」は同じ意味を指す言葉ですが、
言い回しによって使い分けます。
2の3乗の「指数」は3です。(「真数」は8です。)
2を「底(てい)」とする(「真数」)8の「対数」は3です。
のように使い分けます。2を「底(てい)」とする(「真数」)8の「対数」は3です。
「対数log」、常用対数について
関数電卓で「対数log」を計算
「log」は「対数」が知りたい時に使います。
「log底真数は対数乗」(底の対数乗が真数)
と覚えます。
(「底(てい)」が何乗されて「真数」になるか=「対数」)
「関数電卓」で「対数」を求める際は、
「log」の「底(てい)」を入力しないで計算を行う事に注意して下さい。
下図のように「logba = log(a)/log(b) = 対数」として計算します。
例えば
「log28」は「ろぐ に の はち」
のように読みます。
「log28」を「関数電卓」で計算する場合、
「log(8) / log(2) = 3」
と計算します。
結果、対数が「3」となり、
「2を3乗すると8になる」
事が求まりました。
「log」の具体的な計算例は後述『「底の計算公式」計算例』でやるとして、
まずは、
「関数電卓」で使われる「log()」は「常用対数log10」の省略系である
という事を説明していきます。
「常用対数」について…(log10)
「常用対数log10」とは「10を底(てい)とする対数」の事です。
「関数電卓」で使用される「log」は、
「底(てい)」を指定しないと「常用対数log10」として扱います。。
つまり、
「関数電卓」で、
「log(1000)」と入力した場合「log101000」と同じ意味。
となります。「log(1000)」と入力した場合「log101000」と同じ意味。
↓「log101000」のイメージ
「関数電卓」によっては、
「log(10,1000)」など「底(てい)」を明示入力出来る機種もありますが、
通常は「log(1000)」のように入力します。
(「常用対数log10」の他に、
「自然対数loge」という「ネイピア数eを底(てい)とする対数」も存在します)
注意!
C#のプログラムでは
「Math.Log10(8)」とすると「常用対数log108」となり、
「Math.Log(8)」とした場合「自然対数loge8」として解釈されます。
つまり、
「関数電卓」では「底(てい)」を省略時「常用対数log10」として扱いますが、
「プログラム」では「底(てい)」を省略時「自然対数loge」として扱います。
「関数電卓」と「プログラム」で省略時の解釈が逆になるので注意が必要です。
後述する
「C#で常用対数(log10)や自然対数(logeやln)を扱う」
の項でC#での記述例を記載します。
関数電卓の記述で統一
今後学ぶ「微分」などの「ネイピア数e」を頻繁に使う式では、
「自然対数loge1000」の式の方を「log1000」と省略する事もあります。
この場合も「関数電卓」とは違う解釈となる為注意が必要です。
「関数電卓」では
「log1000」とした場合「常用対数log101000」を指す。
と、厳格に定められています。「log1000」とした場合「常用対数log101000」を指す。
このブログでは混乱しないように、
厳格に定められた「関数電卓」の記述方式に統一して説明を行います。
「対数log」の公式
「対数log」の公式4パターン
・定義
「0 < a」(「a」は「底(てい)」)
「1 ≠ a」(「a」は「底(てい)」)
「0 < M」「0 < N」(「MやN」は「真数」)
この「定義」を前提に「1 ≠ a」(「a」は「底(てい)」)
「0 < M」「0 < N」(「MやN」は「真数」)
「対数log」の公式を4パターン紹介します。
・「logの性質」となる公式
「loga1 = 0」
「loga1 = log(0)/log(a) = 0/log(a) = 0」
(答えが対数0なので、
試しに指数0で計算してみると「a0 = 1」と逆算できます)
「logaa = 1」
「logaa = log(a)/log(a) = 1」
「loga1 = log(0)/log(a) = 0/log(a) = 0」
(答えが対数0なので、
試しに指数0で計算してみると「a0 = 1」と逆算できます)
「logaa = 1」
「logaa = log(a)/log(a) = 1」
・「log真数の積」から「対数logの和」への公式
「logaMN = logaM + logaN = 対数」
例:「log2(2*4) = log22 + log24 = 1 + 2 = 3」
例:「log2(2*4) = log22 + log24 = 1 + 2 = 3」
・「log真数の商」から「対数logの差」への公式
「loga(M/N) = logaM − logaN = 対数」
例:「log2(16/2) = log216 − log22 = 4 − 1 = 3」
例:「log2(16/2) = log216 − log22 = 4 − 1 = 3」
・「log真数の累乗」から「実数と対数logの積」への公式
「logaMr = r * logaM = 対数」(rは実数)
例:「log242 = 2 * log24 = 2 * 2 = 4」
(試しに指数4でを逆算してみると、
「真数」は「24 = 16 = 42」となります。)
例:「log39 = log332 = 2 * log33 = 2 * 1 = 2」
例:「log242 = 2 * log24 = 2 * 2 = 4」
(試しに指数4でを逆算してみると、
「真数」は「24 = 16 = 42」となります。)
例:「log39 = log332 = 2 * log33 = 2 * 1 = 2」
「底の変換公式」
この公式は「log」を理解する上で一番重要な公式となりますので、
他の公式とは別に説明します。
定義
「a b c」は「+の整数」
「a ≠ 1」「c ≠ 1」(「aとc」には「底(てい)」となる数字が入る)
を前提とした時、「a ≠ 1」「c ≠ 1」(「aとc」には「底(てい)」となる数字が入る)
「対数log」から「対数logの商」への「底の変換公式」
「logab = (logcb) / (logca) = 対数」
例:「log28 = log48 / log42 = 1.5 / 0.5 = 3」
が成り立ちます。例:「log28 = log48 / log42 = 1.5 / 0.5 = 3」
理解する為にも以下の計算例を確認して下さい。
「底の変換公式」計算例
ここでは「底の変換公式」を使い「対数」を求める際、
「関数電卓」や「筆算」などを使い、具体的な計算を行う例を示します。
・計算例1
・「底の変換公式」
「logab = (logcb) / (logca) = 対数」
での「logab = (logcb) / (logca) = 対数」
分数内の「cの底(てい)」は
分母と分子で同じ数字で揃えれば幾つであってもかまいません。
「関数電卓」で計算してみます。分母と分子で同じ数字で揃えれば幾つであってもかまいません。
これと同じ式を
「cの底(てい)」の数字を変えて計算しても同じ答えとなります。
「筆算」で以下のように計算する事が可能です。
結果「cの底(てい)」を幾つにしようが答えは同じ、
「log28」の対数は「3」
となる事が分かります。
・計算例2
「底(てい)」が違う「log」同士の積(掛け算)は、
以下のように「底(てい)」を揃えて分数化して計算を行います。
結果、
「log63・log336」の対数は「2」
となります。
このような「底(てい)」が違う「log」同士の積(掛け算)の場合は、
「底(てい)」が明示入力できるタイプの「関数電卓」があると、
計算がとても楽ですね。
常用対数表と自然体数表
「筆算」でlogの計算を求めるのに、
「常用対数表」や「自然体数表」という表を使って調べる方法もあります。
例えば「常用対数表」で「5.02」という数値を調べれば、
「約0.701」とう答えを知る事が出来、
「log105.02 ≒ 0.701」
と分かります。
ただ、
「関数電卓」で計算すればもっと簡単に正確な答えが出せる為、
「常用対数表」や「自然体数表」の読み方はここでは説明しません。
興味があれば下のリンク先を調べてみて下さい。
→常用対数表の使い方
https://www.khk.or.jp/activities/regalexamination_course/dl/taisuuhyou.pdf
→【対数】「対数表」の見方
http://oto-suu.seesaa.net/article/174112556.html
「ネイピア数e(exp)」、自然対数について
「ネイピア数e(exp)」
「ネイピア数e」は「自然対数e」や「自然対数の底」とも言われる
「定数」(決められた数字)です。
・定数「ネイピア数e」
「e = 2.718281828…」
「ネイピア数e」は小数点がランダムで終わりが無い為「無理数」とも言います。「e = 2.718281828…」
小数点以下の少数が書き切れないπなどと同じ扱いで、
「e」の数式記号で表記される今後結構重要となる「定数」です。
(微分積分でとても良く使われます)
「e(exp)」の由来は「exponential(指数の)」という意味から来ているそうです。
「ネイピア数e」の別の記述方法
また、
「eを底(てい)とする対数」の事を「自然対数」と言います。
「自然対数」は
「loge」や「ln」
のように記述出来ます。
「loge1.648721271 ≒ 0.5」又は「ln 1.648721271 ≒ 0.5」
「自然対数」は
「loge」や「ln」
のように記述出来ます。
「loge1.648721271 ≒ 0.5」又は「ln 1.648721271 ≒ 0.5」
「自然対数」について…(loge又はlnログナチュラル)
「自然対数」とは「ネイピア数eを底(てい)とする対数」の事です。
これは「loge」の事を指すのですが、
「関数電卓」では省略して「ln」(ログナチュラル)を使用します。
つまり、
「関数電卓」で、
「ln(1)」と入力した場合「loge1」と同じ意味。
となります。「ln(1)」と入力した場合「loge1」と同じ意味。
「関数電卓」によっては、
「log(e,1)」など「底(てい)」を明示入力出来る機種もありますが通常「ln」を使います。
(「自然対数loge」の他に、
「常用対数log10」という「10を底(てい)とする対数」も存在します)
注意!
C#のプログラムでは
「Math.Log10(8)」とすると「常用対数log108」となり、
「Math.Log(8)」とした場合「自然対数loge8」として解釈されます。
つまり、
「関数電卓」では「底(てい)」を省略時「常用対数log10」として扱いますが、
「プログラム」では「底(てい)」を省略時「自然対数loge」として扱います。
「関数電卓」と「プログラム」で省略時の解釈が逆になるので注意が必要です。
後述する
「C#で常用対数(log10)や自然対数(logeやln)を扱う」
の項でC#記述例を記載します。
常用対数と自然対数の定義
「常用対数(log10)」と「自然対数(logeやln)」を使用する時に
理解しておきたい定義を改めてまとめておきます。
常用対数の定義
「常用対数(log10)」の定義
「底(てい)を10」「真数をx」「指数対数をy」とした時、
「10y = x」
「log(x) = log10(x) = ln(x) / ln(10) = log(x) / log(10) = y」
となります。「10y = x」
「log(x) = log10(x) = ln(x) / ln(10) = log(x) / log(10) = y」
自然対数の定義
「自然対数(logeやln)」の定義
「底(てい)をネイピア数e」「真数をx」「指数対数をy」とした時、
「ey = x」
「ln(x) = loge(x) = log(x) / log(e) = y」
となります。「ey = x」
「ln(x) = loge(x) = log(x) / log(e) = y」
対数関数
自然対数 ln(x)、常用対数 log(x)、aを底とする対数 log_a(x)の対数関数を計算
参考→http://keisan.casio.jp/exec/system/1260332465
C#で常用対数(log10)や自然対数(logeやln)を扱う
C#での対数使用例
C#では
「常用対数(log10)」を使用する場合は、
「Math.Log10(8)」や「1.0/Math.Log(10,8)」
(「関数電卓」では「log(8)」や「log(10,8)」)
などと記述します。
「自然対数(loge又はlnログナチュラル)」を使用する場合は、
「Math.Log(8)」や「1.0/Math.Log(Math.E,8)」
(「関数電卓」では「log(e,8)」や「ln(8)」)
などと記述します。
//常用対数(log10) //Log10はそのまま使うと「常用対数」となる double log_10a = System.Math.Log10(8); //底(てい)を10と明示する(底を明示する場合必ず1.0から割り逆数にする事!) double log_10b = 1.0 / System.Math.Log(10, 8); // 1.0から割り逆数にする MessageBox.Show(log_10a.ToString()); // →「0.903089986991944」 MessageBox.Show(log_10b.ToString()); // →「0.903089986991944」 //自然対数(log eやln) //Logはそのまま使うと「自然対数」となる double log_e1 = System.Math.Log(8); //底(てい)をeと明示する(底を明示する場合必ず1.0から割り逆数にする事!) double log_e2 = 1.0 / System.Math.Log(System.Math.E, 8); // 1.0から割り逆数にする MessageBox.Show(log_e1.ToString()); // →「2.07944154167984」 MessageBox.Show(log_e2.ToString()); // →「2.07944154167984」
C#と関数電卓でのlogの違い
「log」の解釈は「関数電卓」と「C#」で変わります。
「関数電卓」では「底(てい)」を省略時「常用対数(log10)」として扱います。
「プログラム」では「底(てい)」を省略時「自然対数(loge又はln)」として扱います。
「関数電卓」と「プログラム」で省略時の解釈が逆になるので注意が必要です。
更に、
「プログラム」上で「底(てい)」を明示して計算する時は、
「1.0」から割り数値を逆数にする必要があります。
この点も注意が必要となります。
「関数電卓」で「log(8)」→「log108」(常用対数)
「関数電卓」で「log(e,8)」→「loge8」(自然対数)
「関数電卓」で「ln(8)」→「loge8」(自然対数)
「C#」で「Math.Log10(8)」→「log108」(常用対数)
「C#」で「Math.Log(8)」→「loge8」(自然対数)
「C#」で「1.0/Math.Log(10,8)」→「log108」(常用対数)
「C#」で「1.0/Math.Log(Math.E,8)」→「loge8」(自然対数)
「関数電卓」で「log(e,8)」→「loge8」(自然対数)
「関数電卓」で「ln(8)」→「loge8」(自然対数)
「C#」で「Math.Log10(8)」→「log108」(常用対数)
「C#」で「Math.Log(8)」→「loge8」(自然対数)
「C#」で「1.0/Math.Log(10,8)」→「log108」(常用対数)
「C#」で「1.0/Math.Log(Math.E,8)」→「loge8」(自然対数)
PCや関数電卓で「指数表記e」を扱う際の注意
「E」や「e」を「指数表記」として扱う!?
ちょっとややこしい話なのですが「PCや関数電卓」などでは
「E又はe」の表記を「ネイピア数e」としてではなく、
「×10?」の「指数表記」として扱う事があります。
例えば
「100000」という数字を表すのに以下のように表示します。
「1E+5」又は「1e+5」
ここでの「E+5又はe+5」は「×105」の事なので「1×105」となります。
「1500000」という数字を表すのに以下のように表示します。
「1.5E+6」又は「1.5e+6」
ここでの「E+6又はe+6」は「×106」の事なので「1.5×106」となります。
この例のように「E又はe」が「指数表記」として扱われます。「1E+5」又は「1e+5」
ここでの「E+5又はe+5」は「×105」の事なので「1×105」となります。
「1500000」という数字を表すのに以下のように表示します。
「1.5E+6」又は「1.5e+6」
ここでの「E+6又はe+6」は「×106」の事なので「1.5×106」となります。
「関数電卓」によっては「指数表記e」を「ネイピア数e」と区別する為に
「100000」を「1×105」
「1500000」を「1.5×106」
のように、
あえて「指数表記e」を使わず分かりやすく表示してくれる電卓もあります。
「C#」のプログラムでは数値と文字列を相互変換する時に、
意図せず「指数表記e」が付いたり外れたりする事があります。
明示的に「指数表記e」を付けたり外したりする為には、
以下ような記述が必要となります。
// 指数表記を行う double testNum1 = 12.3456789; MessageBox.Show(testNum1.ToString()); // 「12.3456789」 MessageBox.Show(testNum1.ToString("E")); // 「1.234568E+001」 MessageBox.Show(testNum1.ToString("E3")); // 「1.235E+001」 MessageBox.Show(testNum1.ToString("E2")); // 「1.23E+001」 MessageBox.Show(testNum1.ToString("0.000000e+0")); // 「1.234568e+1」 MessageBox.Show(testNum1.ToString("0.000e+0")); // 「1.235e+1」 MessageBox.Show(testNum1.ToString("0.00e+0")); // 「1.23e+1」 // 指数表記を外す double testNum2 = 0.00001; // ← 勝手に指数表記となってしまう数値 string testStr2 = "0.######################"; MessageBox.Show(testNum2.ToString()); // 「1E-05」 MessageBox.Show(testNum2.ToString(testStr2)); // 「0.0000011」 MessageBox.Show((10.0).ToString(testStr2)); // 「10」 MessageBox.Show((12.30).ToString(testStr2)); // 「12.3」 MessageBox.Show((0).ToString(testStr2)); // 「0」 // 「指数表記を使用 | カンマ付きの数字文字列を使用」で // 文字列 → double変換 double testNum3 = double.Parse("1.2345E+2", System.Globalization.NumberStyles.AllowExponent | System.Globalization.NumberStyles.Number); MessageBox.Show(testNum3.ToString()); // 「123.45」 MessageBox.Show(testNum3.ToString("0.######################")); // 「123.45」
他
以下のサイトを参考にしました。
対数関数
自然対数 ln(x)、常用対数 log(x)、aを底とする対数 log_a(x)の対数関数を計算
http://keisan.casio.jp/exec/system/1260332465
対数とは何なのかとその公式・メリットについて。対数をとるとはどういう意味か?
https://atarimae.biz/archives/12581
対数(LOG)の計算と公式!これでもうバッチリ!!
http://kenyu.red/archives/3132.html
対数 log の公式と計算
https://sci-pursuit.com/math/logarithm-formulae-and-calculation.html
logの計算機での計算方法
http://support.casio.jp/answer.php?cid=004002001001&qid=26860&num=10
logとlnの違い
https://okwave.jp/qa/q224511.html
数学記号exp,ln,lgの意味
https://mathtrain.jp/explnlg
【指数・対数関数】指数と対数の関係
http://kou.benesse.co.jp/nigate/math/a14m1208.html
数学記号の表
https://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E8%A8%98%E5%8F%B7%E3%81%AE%E8%A1%A8
数式記号の読み方・表し方
http://izumi-math.jp/sanae/report/suusiki/suusiki.htm
0 件のコメント:
コメントを投稿