2011-06-23 9 views
0

私のデバッガ(VS2010)でを使用してSqlCeServer 3.5データベースに正しい値を送信していることを確認できます。SqlCeServer:Floatストアが正しくありません

その後のデータを見ると、私はの私のfloat値が歪んでいることに気付きました。

  • 私は0.006入力すると、データベースは私が0.012入力すると、私は0.011入力すると0.0120000001043081

  • 、データベースが格納されます0.0060000000521540642

  • は、データベースを格納する格納されます0.0109999999403954

他の浮動小数点値(1.125,0.875,0.75)はうまく格納されます。

floatの値が正しく格納されるように特別な処理はありますか?

答えて

2
+0

OK、データベースを削除して再作成しました(これは私のアプリがやろうとしていることです)。今回は、 'SqlCeParameter'の' SqlDbType'を 'Single'(これは' float')として指定するのではなく、 'SqlDbType.Decimal'を使用しました。データが間違っていて、 'SQL Server Management Studio'を開いたとき、私の' SqlDbType.Decimal'パラメータはこれらの列を 'numeric(18,0)'としてフォーマットし、値を最も近い整数に丸めます。 **これを修正するにはどうすればいいですか?** – jp2code

+1

@ jp2code: 'decimal(p、s)'にpとsを指定してください。デフォルトにしないでください。 http://technet.microsoft.com/en-us/library/system.data.sqlserverce.sqlceparameter.precision.aspx – gbn

+0

OH YEAH!あなたは美しいです!それでおしまい!ありがとうございました! – jp2code

0

:それはおおよそ

使用固定精度をだ "データ型の範囲内のすべての値が正確に表現することができない"

ルックスあなたがそれらのいくつかを見つけたように!

関連する問題