0

value = 2.05 の float フィールドを取得しました。field*1000 を実行すると、結果は 2049.999952316284 になります。結果が 2050.0 でないのはなぜですか? .

ありがとう

4

1 に答える 1

1

おそらく、フィールドが2.05としてではなく、2.04999として格納されているためです。フィールドの解像度を上げる、つまり2.0500として保存するとどうなりますか?

この問題は、コンピューターがいくつかの実数を正確に格納できないことが原因です。

ちなみに、値が通貨値であると想定される場合は、数値(12,2)として格納してください。そうすれば、浮動小数点エラーは発生しません。

于 2012-09-27T12:02:55.117 に答える