• 締切済み

エクセルの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」にする方法はあるのでしょうか。

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

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

sunrisejp
質問者

お礼

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

回答No.2

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

sunrisejp
質問者

お礼

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

回答No.1

小数を含む計算で丸め誤差が出るのは、二進法で計算して十進法で 表示しなくちゃいけない計算機の宿命です。 1.計算の途中で小数にならないように細工する =rounddown((1000*A1-1000*A2)/1000,1) 2.かなり下の方の桁で四捨五入してから切り捨てる =rounddown(round(A1-A2,10),1) こんなあたりでいかがでしょう。

sunrisejp
質問者

お礼

二進法で計算して十進法になおす計算機の宿命! やはりここに行き着きますね! ありがとうございました。

関連するQ&A