- ベストアンサー
エクセルの対数の計算
初歩的な質問です。セルA1,B1に数値を入力して C1にB1/A1を計算させて表示、次にD2に20*log(C1で出た数値そのものを入力/C1)にすると、ほぼゼロに近い数値(1.76011E-10)がでます。数学の計算ですと20*log1=0になったはずですが、なぜエクセルで計算でするとこのような数値になるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
試してみました。 A1=7, B1=8,C1=B1/A1 とすると、C1の表示は1.142857143 D1に手入力で1.142857143といれ、 E1=20*LOG(D1/C1)とすると、 E1の表示は、1.08574E-09 ここで、C1をコピーし、D1で 右クリック→形式を選択して貼り付け→値 とすると、E1は0になりました。 つまり、C1とD1は見かけは同じだが、異なる値だったということです。 そこで、C1の表示桁数を増やしてみると、 1.14285714285714 となりました。下のほうの桁が隠れていたわけです。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >D2に20*log(C1で出た数値そのものを入力/C1) B1/A1 この場合は、例えば、計算結果が、7/8 のような無限小数であるなら、そのまま数字を物理的に入力することは不可能です。分数のままで入力するしかありません。しかし、 また、ここに、整数や単純な数値で出ない限りは、厳密には、無限小数の引き算や割り算の演算において、論理的な計算の予想値と、実際の32ビットパソコンのバイナリ計算では、浮動小数点丸め誤差が生じてしまいます。
お礼
ご回答ありがとうございました。
- NNori
- ベストアンサー率22% (377/1669)
C1で表示された数値は丸められているので (C1で出た数値そのもの)/C1が微妙に1より大きくなっているからでしょう。 ちなみに(C1で出た数値そのもの)/C1-1とやるとどうなりますか?0ではないのではありませんか?
お礼
ありがとうございました。確かに0ではなかったです。
お礼
ありがとうございました。数値が四捨五入されていたのですね。