webdevqa.jp.net

データベースにフロートしますか? .NETで

MSSQLServerにfloatがある場合、これを.NETで何にマップしますか?

ダブルに変換できますか、それとも数字を失いますか?

29
Lieven Cardoen

SQLServer floatとC#/ VBdoubleは同じ表現です。これは正しいマッピングです。実行したくないのは、SQL Server floatをC#/ VB _​​floatにマップすることです。これは、精度の低下を伴う可能性があるためです。 SQL Server realはC#/ VBfloatにマップされます。

T-SQLの浮動小数点数と実数型の定義は [〜#〜] msdn [〜#〜] にあります。 C#の二重定義は [〜#〜] msdn [〜#〜] にもあり、float definition も同様です。

66
tvanfosson

チェックアウト:

あなたの場合、SQL ServerのネイティブタイプfloatはSQL Server CLRSqlDoubleにマップされます次に、.NetでDouble

更新(2016年5月)

Msdnドキュメントの更新バージョン: CRLパラメータデータのマッピング

13
kristof

C#にはfloatタイプがありますが、doubleにも問題なく変換されます。

0
Joel Coehoorn

私の記憶から、ほとんどのORMツールはそれをDecimal型にマップします。これは、doubleやfloatのように精度を失うことはありません。

0
flatline

SQLフロートのサイズによって異なります。 float(53)と同等のプレーンな「float」の場合、C#doubleを使用する必要があります。 float(24)以下の場合、C#floatで十分であるか、doubleでも機能します。

0
Misko

Microsoft XSDによって生成された自動コードは、SQL float(デフォルトはfloat)をC#doubleに変換します。
それで、それは大きな間違いではないと示唆することができます。
デフォルトサイズのfloatを使用するまで。

0
Avram