エクセルの0.1について
セルA1に「10」を入力します。
次にセルA2に「9.9」を入力します。
そしてセルA3に計算式「=A1-A2」と入力します。
すると、セルA3には「0.1」と表示します。
ここで、セルA3に計算式「=ROUNDDOWN(A1-A2,1)」と入力すると、
セルA3の答えは「0」となります。
Rounddown関数で小数点1位以下を切捨てる前に、セルA3の少数点以下の表示桁数を20桁くらいにすると、「0.099・・・96」となります。
PCは「10-9.9の答えは、0.099・・・96である」と認識しているから小数点1位以下を切捨てると「0」になるのではないかと思います。
セルA3の計算式「=ROUNDDOWN(A1-A2,1)」の答えを「0.1」にする方法はあるのでしょうか。
投稿日時 - 2007-10-16 17:51:11
このQ&Aは役に立ちましたか?
0人が「このQ&Aが役に立った」と投票しています
回答(3)
小数を含む計算で丸め誤差が出るのは、二進法で計算して十進法で
表示しなくちゃいけない計算機の宿命です。
1.計算の途中で小数にならないように細工する
=rounddown((1000*A1-1000*A2)/1000,1)
2.かなり下の方の桁で四捨五入してから切り捨てる
=rounddown(round(A1-A2,10),1)
こんなあたりでいかがでしょう。
投稿日時 - 2007-10-16 18:04:39
二進法で計算して十進法になおす計算機の宿命!
やはりここに行き着きますね!
ありがとうございました。
投稿日時 - 2007-10-16 21:26:19