• ベストアンサー

エクセルの対数の計算

初歩的な質問です。セルA1,B1に数値を入力して C1にB1/A1を計算させて表示、次にD2に20*log(C1で出た数値そのものを入力/C1)にすると、ほぼゼロに近い数値(1.76011E-10)がでます。数学の計算ですと20*log1=0になったはずですが、なぜエクセルで計算でするとこのような数値になるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.2

試してみました。 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 となりました。下のほうの桁が隠れていたわけです。

you-
質問者

お礼

ありがとうございました。数値が四捨五入されていたのですね。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >D2に20*log(C1で出た数値そのものを入力/C1) B1/A1 この場合は、例えば、計算結果が、7/8 のような無限小数であるなら、そのまま数字を物理的に入力することは不可能です。分数のままで入力するしかありません。しかし、 また、ここに、整数や単純な数値で出ない限りは、厳密には、無限小数の引き算や割り算の演算において、論理的な計算の予想値と、実際の32ビットパソコンのバイナリ計算では、浮動小数点丸め誤差が生じてしまいます。

you-
質問者

お礼

ご回答ありがとうございました。

  • NNori
  • ベストアンサー率22% (377/1669)
回答No.1

C1で表示された数値は丸められているので (C1で出た数値そのもの)/C1が微妙に1より大きくなっているからでしょう。 ちなみに(C1で出た数値そのもの)/C1-1とやるとどうなりますか?0ではないのではありませんか?

you-
質問者

お礼

ありがとうございました。確かに0ではなかったです。

関連するQ&A