それは科学的なフォーマットにあなたの実数(IEEE浮動小数点)を変換しません:それは、SSMSでどのように表示さそれらのです。ここではどのようにADO.NetマップデータタイプのSQL Serverと.NETの世界の間です:http://msdn.microsoft.com/en-us/library/cc716729.aspx
浮動小数点型の場合、SQL Serverは、ISOデータ型Nは、仮数部の大きさであるfloat(
nは)
を実装しますビット数(1〜53を含む)。 real
はfloat(24)
の同義語です。 float
はfloat(53)
の同義語です。
浮動小数点型の列は、仮数が1-24ビットのものがSystem.Single
にマップされています。 24ビット以上の仮数を持つものはSystem.Double
にマッピングされます。
SQL Serverのmoney
とsmallmoney
のデータ型は、お金とはほとんど関係ありません。これらは固定小数点以下の小数点以下4桁の精度(単位の1/10000)です。 Ado.Netはmoney
とsmallmoney
をSystem.Decimal
にマップし、System.Decimal
をmoney
にマップします(smallmoney
へのマッピングはありません)。この変換には、インピーダンスの不一致がありますが、10進浮動小数点形式のSystem.Decimal
があります。 SQL Serverのデータ型money
から/への変換は、精度の
- 損失につながることができます。
System.Decimal
の値が小数点以下4桁を超える場合、余分な数字は失われます。
- 精度の向上。 `System.Decimalの値が小数点以下4桁未満の場合、moneyへの変換では、小数点の右側に余分な数字(試行ゼロ)の形で精度が得られます。その余分な精度は、SQL Serverから読み取ったときに維持されます。
例を挙げることができますか(2,211221E + 07は元来何を挿入しましたか)? REALを意図的に使用していますか? (通常はDECIMAL/NUMERICが良い選択です。) –