アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCEL97で小数計算をすると誤差がでるのですが何故ですか?
A列に14.60を数値入力 
B列に13.90を数値入力 
C列に=B1-A1の数式をいれると-0.70となるはずなのにどういうわけか
-0.699999999999999と表示される。
小数点以下14桁目までは-0.70000000000000と表示されるが15桁目で上記のように表示される。
表面上はROUND関数などで処理できるのですが複数の数式を組み合わせて計算している時は-0.69999・・・の数値をもって計算される場合があり誤差がでる。
消費税や金利計算などで1円でも誤差がでると表計算の正確さが問われてしまう。
0.7の他にも 次の場合もでる
0.2のとき0.1999・・
0.3のとき0.2999・・・・
0.8のとき0.7999・・・・
これはEXCELのバグなのでしょうか?

A 回答 (2件)

こんにちは



 以下のページもご参考になるのでは?

Housaka's Home Page-エクセル奇譚
http://member.nifty.ne.jp/housaka/kitan01.html

Housaka's Home Page-エクセル奇譚 ~ 誤差アラカルト ~
http://member.nifty.ne.jp/housaka/kitan011.html

[XL97] 浮動小数点数値演算の結果に含まれる丸め誤差について
http://www.microsoft.com/japan/support/kb/articl …

[XL97] 数値を比較した結果が正しく返らないケースについて
http://www.microsoft.com/japan/support/kb/articl …

[XL97] 特定の小数部を持つ数値を入力した場合に誤差を生じる
http://www.microsoft.com/japan/support/kb/articl …

[XL] 浮動小数点の計算誤差と IEEE フォ-マット
http://www.microsoft.com/japan/support/kb/articl …

ROUND関数の結果を正常にするには?
http://cgi.fuji.ne.jp/~fj2094/cgi-bin2/wwwlng.cg …

四捨五入するには
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cg …

入力規則が正しく判定されないんです
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cg …

計算結果がセルの表示と異なるのは?
http://www.moug.net/boards/exopr/questbbs.cgi?Sh …

参考URL:http://www2.odn.ne.jp/excel/
    • good
    • 0

これはEXCELに限らずパソコンで小数点の計算をするときには避けられない部分


ですね。
有効桁数を設定して計算するしかないでしょうね。小数点以下15桁使うような計算
は別の手段を使うべきだと思います。
EXCELのヘルプで「ワークシートとブックの仕様」というページを探してくださ
い。様々な制限事項が書かれています。

この回答への補足

ありがとうございました。EXCELのヘルプで「ワークシートとブックの仕様」を見てみました。いろいろな情報がありヘルプにこんなにたくさんの項目があるとは知りませんでした。
質問には小数点以下15桁の表現をしましたが実際小数点以下15桁使うような計算はしていません。
14.60-13.90=0.70は常に小数点以下3桁目を切り捨てるrounddown関数を使用していて0.69の表示がされたので計算違いが出ていると気が付いたのです。どうして0.70の表示にならなかったのか不思議に思い質問しました。
パソコンで小数点の計算をするときには避けられない部分では仕方ないですね

補足日時:2000/06/10 15:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!