0

この掛け算をするとき

0.94 * 8700

出力は

8177.999999999999

しかし、そうすべきだった

8178

私は java を使用していますが、このエラーが特定のプログラミング言語に関連しているとは思いません。私の質問は...なぜこれが起こったのですか??
また、同じエラーを引き起こす他の数字 (例として) は何ですか?

4

2 に答える 2

5

あなたの場合の具体的な理由は、実数 0.94 を倍精度浮動小数点で正確に表現できないことです。と入力する0.94と、実際に格納される数値は0.939999999999999946709294817992486059665679931640625です。

于 2011-09-28T10:29:37.047 に答える
0

エラーではありません。IEEEフロートは、10進数を正確に表すことはできません。

于 2011-09-28T10:26:40.857 に答える