• 締切済み

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

  • EXCELで入力した数字を切り捨てる方法

    EXCELで計算結果を切り捨てる方法はわかるのですが(ROUNDDOWN,TRUNC等)、入力した数字をそのまま切捨てることはできるのでしょうか? セルの書式設定で小数点以下を0にすれば、見た目は少数以下は無いですが、実際は小数点以下も持っているようです。 もしくは そのセル(A1とした場合に)をほかのセル(B1)で参照して =ROUNDDOWN(A1,0) という式を入れればできるのもわかるのですが、その入力セル自体で切捨てを行いたいのです。 例)あるセルに 1234.56 と入力したら 1234 という数字にしたい。

  • エクセルでの数値入力で

    こんにちは。 エクセルで数値を入力する場合に,その入力したセルの表示を条件によって小数点以下の桁数を変えたいのです。 例えば,入力セルがB4だとし,B4に 12.8 を入力したとき, A1が1のときはB4の表示は 12.80 (小数点以下2桁まで表示) A1が2のときはB4の表示は 12.8  (小数点以下1桁まで表示) としたいのです。直接入力するセルの表示なので,関数は使えず,条件付書式では,表示形式が使えません。 また,マクロは使わずにやりたいのです。ワークシートは,エクセルにも不慣れな初心者が入力することを想定して作っています。 よろしくお願いします。

  • 計算に使うエクセルの数値の表し方について

    初歩的な質問かもしれませんが… エクセルのセル間で、計算式や関数を使って計算を行うと、答えが6.10479547238…などと割り切れない小数になることが多いです。 これを、例えば小数点以下3桁で表示させるには、書式の表示形式を数値にして桁数を3で指定する方法と、ROUND関数を用いて引数を3にするやり方が考えられます。 この計算結果の数値を用いて、さらに別の計算を行う場合(例えば各計算結果の平均値を出すなど)、どちらのやり方で丸めたものを用いた方が正確でしょうか?

  • エクセル関数で

    お世話になります。先日こちらで教えていただきました関数で、変更箇所がありましたので悩んでおります、、、 ご存知の方ご指導いただけないでしょうか、、、 ■下記の数値の小数点以下3桁目をある条件で切上げ・切捨てを行いなさい。 【条件】23.230以下は、小数点以下3桁目を切り捨て。23.231以上は 小数点以下3桁目を切上げる。 ただし、小数点以下3桁目が0の場合は値が23.231以上は 小数点以下3桁目を切上げ(*1) 23.230以下の場合は少数点以下2桁目を1減少させる(=0.01マイナス)(*2) 例) 23.151 → 23.15    23.230 → 23.23    23.231 → 23.24 (*1) 23.240 → 23.25 (*2) 23.150 → 23.14 小数点以下3桁目が0の場合、23.230以下の場合小数点以下2桁目を 1減少させるという関数がわかりません。 下記の関数にどのような式を加えればよいのでしょうか? =IF(A1>=23.231,ROUNDUP(A1+0.001,2),ROUNDDOWN(A1,2)) ※上記の式だと、小数点以下3桁目が0の場合、23.231以上の場合は 切上げ、23.230以下の場合は切り捨てになります。 宜しくお願い致します。

  • エクセルで小数点以下を切り捨てた答えを表示したい!

    こんにちは。宜しくお願いします。 OSは、WindowsNT、Excel97を使用しています。 エクセルで計算式を作った時、答えが小数点以下2ケタまで表示されたとします。それを小数点以下を切り捨てた数字で表示したい時、どうすればいいのか分かりません。 関数「ROUND DOWN」を使えば切り捨てが出来るという事は分かるのですが、出来れば、計算して答えが出るセルに直に切り捨てた答えが出るようにしたいのです。(つまり、小数点以下の答えが表示されるセルと、切り捨てた答えが表示されるセルを分けたくないのです) 拙い説明で申し訳有りませんが、不明な点などあれば補足致しますので、宜しくお願いします。

  • エクセル・切捨て

    A3というセルがあるとします。 ここにはA1とA2を合計する関数を入力しています。 合計は1.239だとすると小数点以下2桁表示では、 1.24になります。これを切捨てで1.23に することはできないのでしょうか? 表示だけでなく、完全に1.23としたいと考えています。

  • エクセル 表示桁数変更の仕方を御指導願います。

    例 A1に任意の整数を入力すると。A2に数値B2に単位(無、万、億、兆)を表示するようにしたい。     9876 とA1に入力   A2:9876    B2:無    12345 とA1に入力   A2:1.2345   B2:万    A2:小数点以下4桁 12340 とA1に入力    A2:1.2340   B2:万    A2:小数点以下4桁  123456789とA1に入力   A2:1.23456789  B2:億    A2:小数点以下8桁    ユーザ定義で指定する表示桁数を関数で変更できる方法は有りませんか?  特に10000と入力したとき、1と表示するのでは無く、1.0000と表示させたいのです。  どなたか、御指導をお願いします。            

  • 少数桁の指定

    VBでテキストボックスに入力された数値を使った計算結果をラベルに表示するといったことをしているのですが、そのときに少数桁をそろえたいのですが、どうすればいいのでしょうか? 例えば、答えが『0.5』の場合、『0.5000』といったように少数点以下の桁数を全ての答えでそろえたいのです。 何か関数があった気がするのですが、VBの本を読んでもわかりませんでした。 よろしくお願いします。

  • エクセル まるめ

    (4-1.3*3)/(1.4-1.3) 上式を計算するとO.1/0.1で1になりますが、エクセルでこの式を整数に切り下げると ROUNDDOWN((4-1.3*3)/(1.4-1.3),0) 0になります。小数点以下1桁に切り下げると0.9と表示されます。 ROUNDDOWN((1-0.3*3)/(1.4-1.3),0) ROUNDDOWN((7-2.3*3)/(1.4-1.3),0) はどちらも1になり問題ありません。 以上のように、(1.4-1.3)に問題は無く、(4-1.3*3)に原因があるようなのですが何故なのか分かりません。どなたか教えて下さい。

  • エクセルの関数について

    エクセルで、こんな時にはどういう関数を使えばいいか、教えてください。 セルに数字を入力しますが、たとえば「5.5」と入力した時はそのまま 「5.5」と、「5」と入力した時は「5.0」ではなくて「5」と 表示したいのです。 どうすれば、整数は整数のまま、少数の時は小数点以下まで表示できるでしょうか? ちなみに、その都度桁数を指定せず、数字を入力したら、勝手にそうなるようにしたいのですが・・・ わがままな質問ですみません。 どなたか教えてください。

専門家に質問してみよう