こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセルの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

QNo.3434606

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

安直ですが、=ROUND(A1-A2,2)では駄目でしょうか。

投稿日時 - 2007-10-16 18:10:39

お礼

ありがとうございました。
これは私も思いつきました。

投稿日時 - 2007-10-16 21:28:41

ANo.2

=ROUNDDOWN(A1-A2+0.0999,1)ではどうでしょうか?

投稿日時 - 2007-10-16 18:05:44

お礼

ありがとうございました。
とりあえず「0.1」になりました。

投稿日時 - 2007-10-16 21:27:34

小数を含む計算で丸め誤差が出るのは、二進法で計算して十進法で
表示しなくちゃいけない計算機の宿命です。

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

あなたにオススメの質問