私のデバッガ(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
の値が正しく格納されるように特別な処理はありますか?
OK、データベースを削除して再作成しました(これは私のアプリがやろうとしていることです)。今回は、 'SqlCeParameter'の' SqlDbType'を 'Single'(これは' float')として指定するのではなく、 'SqlDbType.Decimal'を使用しました。データが間違っていて、 'SQL Server Management Studio'を開いたとき、私の' SqlDbType.Decimal'パラメータはこれらの列を 'numeric(18,0)'としてフォーマットし、値を最も近い整数に丸めます。 **これを修正するにはどうすればいいですか?** – jp2code
@ jp2code: 'decimal(p、s)'にpとsを指定してください。デフォルトにしないでください。 http://technet.microsoft.com/en-us/library/system.data.sqlserverce.sqlceparameter.precision.aspx – gbn
OH YEAH!あなたは美しいです!それでおしまい!ありがとうございました! – jp2code