No.1
- 回答日時:
A1、B1の数値を手入力した場合は期待する結果になるのではありませんか?
もしかしてA1、B1の値は、計算式で求めていて、その結果をセルの書式表示で「小数点以下3桁まで表示」にしていないでしょうか。その場合小数点以下4桁目で四捨五入された結果が表示されています。
(例えば1.234999999が1.235と表示されている。だからMOD関数の結果が5にならない)
A1、B1の式を
=ROUND(元の式,3)
にすれば正しい結果にならないでしょうか
No.3
- 回答日時:
>求める解は0.235ですが0.240と表示されます
◆でも式が、ROUND(A1-B1,2) であれば、小数点第3位四捨五入小数点2桁表示のはずですので、0.235なら0.24は正動作だと思いますが?
No.4
- 回答日時:
◆的外れな回答で失礼しました
★これはやはり「演算誤差」でしょうか
◆ならば、下のURLを一度ご覧ください
「“達人”芳坂和行氏に学ぶ、エクセル(Excel)「演算誤差」対策講座」
参考URL:http://pc.nikkeibp.co.jp/pc21/special/gosa/index …
No.5ベストアンサー
- 回答日時:
こんにちは。
前の回答で、一応、こちらの数式もチェックしていただきたかったですね。
FLOOR(A1,0.005)+(MOD(A1*1000,10)>5)*0.005-B1
MOD((A1-B1)*1000,10) = 5
で、浮動小数点丸め誤差が発生しているから、小数点第14位目が、#2 の方のご指摘のとおりに、9になっていて、 「5」と等しくはなっていないわけです。だから、Excelの場合は、求める桁より外の値は、切り捨てるというのが一般的です。たとえば、時間計算なら、小数点第7位までとか。
整数変換法
INT(MOD((A1-B1)*1000,10))=5
小数点固定法
MOD(FIXED(A1-B1,3)*1000,10)=5
理屈は、両方とも同じです。
私は、なぜ、Microsoft は、このような仕様にしなければならなかったのか、疑問が残っています。今は、比較対象が限られていますから、単にExcelがどうこうという話しか出来ませんが、たぶん、このプログラム的な解決方法は、Lotus,Quadra,IBMなど各会社出してはあったし、かつては、Microsoft も対処していたのですが、Win-Excelになって、それを使えなかったことが原因だと思います。1991~2年頃に、LotusとMicrosoft共同で、この問題については発表がなされています。そうしないと、銀行など経理的な計算では大変な問題が発生する可能性があるからです。しかし、結局、Microsoft の一人勝ちのための、そのまま放置されたとも言えます。
ずいぶん前に、PC-VAN やTex で有名な三重大の奥村先生がこの問題を指摘していらっしゃるのですが、原因は、Microsoft が、「#IEEE 754 の double 型」をそのまま使っているということです。正直なところ、芳坂氏の説明は、丁寧に読みすすめましたが、あの説明では、私には良く分かりません。一応、元は雑誌の記事の内容ですから仕方がないと思います。表計算の場合は、ユーザーに対しては、その表計算上での対処法を提供すれば済むのではないか、と思っています。(maron-5さん、水を差してすみません。気を悪くなされないでください。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) Excel 数式を教えてください 2 2022/06/02 12:24
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Excel(エクセル) 時間差を求めるマクロコードを教えてください。 4 2022/05/17 18:22
- Excel(エクセル) Excel表示形式 2 2022/09/09 09:57
- Excel(エクセル) EXCEL 計算結果の桁数をそろえたい。 5 2022/12/25 18:33
- Excel(エクセル) Excel ある日の45日後の計算 及び 3か月後の計算 6 2022/04/05 13:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelでPC(パソコン)によって...
-
c languageで 簡単な質問があ...
-
2進数の足し算(C言語)
-
16進数 加算 減算 C言語
-
fortranでx=1としても0.9..が入る
-
除算を使わずに10で割りたい。
-
三角比の俯角の計算
-
Double型について
-
符号付整数の演算結果を答えよ ...
-
計算が合わない
-
100桁の計算ができなくて困って...
-
VB.net Double と...
-
C言語プログラミングにて、arct...
-
C言語の実数演算の速度は、値に...
-
C言語 型変換のタイミング
-
【C++】double の計算結果がお...
-
VBAでの割り算の余りの求め方
-
2進数、16進数、10進数のことを...
-
多桁計算
-
2の補数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
O(n log n)について2
-
三角比の俯角の計算
-
c languageで 簡単な質問があ...
-
16進数 加算 減算 C言語
-
ExcelでPC(パソコン)によって...
-
VB.net Double と...
-
”/”を使わずに割り算したいんで...
-
ExcelのINT関数の計算結果がお...
-
有効数字について 以前質問をし...
-
floatの有効桁数
-
三菱シーケンサ(Aシリーズ)で...
-
距離から緯度経度を求める方法
-
VBAでミリ秒まで出力する方法
-
EXCELの関数"STDEV(標準偏差)"...
-
除算を使わずに10で割りたい。
-
C言語プログラミングにて、arct...
-
VB6.0での小数点の扱いについて
-
VBAでの割り算の余りの求め方
-
255の2の補数、B'00000001'が-...
-
変換指定子%22-16gの表示...
おすすめ情報