36

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

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

4

6 に答える 6

76

SQLServerfloatと C#/VBdoubleの表現は同じです。これは正しいマッピングです。やりたくないことは、SQL Serverfloatを C#/VB にマップfloatすることです。精度が失われる可能性があるためです。SQL Serverrealは C#/VB にマップされますfloat

T-SQL float 型と real 型の定義は、MSDNにあります。C# の double の定義はMSDNにもあり、float の定義も同様です。

于 2009-02-13T14:39:58.013 に答える
15

チェックアウト:

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

更新 (2016 年 5 月) :

msdn ドキュメントの更新版: CRL パラメータ データのマッピング

于 2009-02-27T16:36:41.663 に答える
0

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

于 2009-02-13T14:38:05.553 に答える
0

私の記憶では、ほとんどの ORM ツールは、double や float のように精度を失わない Decimal 型にマップします。

于 2009-02-13T14:39:39.667 に答える
0

これは、SQL float のサイズによって異なります。float(53) と同等の単純な "float" の場合、C# の double を使用する必要があります。float(24) 以下の場合は、C# float で十分です。または、double も同様に機能します。

于 2009-02-13T14:43:32.077 に答える
0

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

于 2009-02-13T14:46:01.447 に答える