MS Excelの計算
返信リスト(回答:5)
B2:=ラウンド(MOD(A2,0.52)、14)
ドラッグダウンします.
この記事も読む:
浮動小数点演算はExcelで不正確な結果を与える可能性があります
応答4# ->にスキップ5 #JPRonseこんにちはandreas、
これは答えの一部です.ファイルを見てください:
= mod(4,68; 0,52)は0,52を返し、そこで0.
N-D* INT(N/D)または4,68-0,52* INT(4,68/0,52)は0を返します.
私はそれがIEEE754問題であると思います.
Chip Pearsonでは、両方の数字は整数であるべきです.
応答5# ->にスキップ1 #joeu200のみ
一致することによって.そして一般的に、疑わしいトリックのためだけに
Excelは、バイナリ算術残差を隠すために矛盾して実装しています.
いくつかの状況.たとえば、A145の5.72で、= A145-0.52* INT(A145/0.52)は正確にゼロ(0.00e + 00)を返します.
しかし= a145-0.52* int(A145/0.52)= 0 false(!)はfalse(!)を返します
合計(A145、-0.52* INT(A145/0.52))は、ほとんどゼロではなく、約-8.88E-16です.
the
違いは、Excelが最後の減算(またはの追加)を扱う疑わしい方法です.
対向的署名されたオペランド)Form= Expression-x.
応答3# ->にスキップ2 #joeu200JPがURLを提供していないため、Chipが書いたのかわかりません.
しかし、点は(であるべきです):整数のmod(2 ^ 53 [*])のmodはMOD結果の丸めを必要としません.
だから私たちは書くべきです:
= mod(ラウンド(A249* 100,2)、52)/100
A249は9.88です.
SUM(9.88* 100、-988)が正確にゼロでないため、A249* 100を明示的にラウンドしなければならない(0.00e + 00).
一般的に、それが正確な整数ではない場合は、除数を明示的に丸める必要があります.
(偶然によると、0.52×100は正確に52です.)
-[*] Re:2 ^ 53以下の整数のmod.Excel 2007以前の2 ^ 27未満.Excel 2010のversionについては2 ^ 41未満です.119083 KB 119083では、私はもう同等のMSFTの資料を見つけることができません.