2

なぜ(float)1.11111111 = 1.11111116C#で行うのですか?

4

2 に答える 2

9

フロートの精度は7桁で、実際の数値の概算にすぎません。等式およびその他の演算子は、完全に正常に機能していますが、必ずしも期待どおりに機能するとは限りません。

必須のリンク:すべてのコンピューター科学者が浮動小数点演算について知っておくべきこと

Epsilonフロートには、フロート値に関する非常に小さな小数の問題を軽減するために使用できるプロパティがありますが、これは使用したことがありません。浮動小数点数の経験は限られていることを認めます。

より高い精度が必要な場合は、15〜16桁の精度doubleで大きくなります。さらに精度が必要な場合、特に10進数全体(通貨計算など)が必要な場合は、を使用しますdecimal

于 2012-04-17T08:16:44.027 に答える
2

フロートは正確な値ではないため:ウィキペディアはそれをかなり説明しています。また、6:00から10:00頃にジョンスキートのビデオを見るようにしてください。つまり、連続値にはfloat / doublesを使用し、離散値には10数/整数などを使用します。

于 2012-04-17T08:17:16.660 に答える