0

重複の可能性:
C#のdouble値を比較する際の問題
Double変数が間違った値を保持している

MySQLデータベースのテーブルにいくつかの値を格納しています。列タイプはdouble(8,2)です。Sum()そのデータをフェッチしてから、LINQの拡張メソッドを呼び出しています。その操作は、例えばを返します384.18。次に、(同じ方法で)2番目の値を取得し、たとえばを取得し384.17ます。

数学を行うと、結果は次のようになります。

384.18 - 384.17 = 0.0099999999999909051

どうして0.01?この方法を使用できることはわかっていますが、Math.Round()なぜその結果が得られるのか疑問に思っています。

編集

C#でのdouble値の比較

4

1 に答える 1

0

Double には必要な精度がありません。C# では decimal を使用し、SQL ではより正確な数値型を使用します。SQL-Server は NUMERIC(x,y) になります。MySqlの同等物がわからない。

于 2012-05-18T19:58:49.203 に答える