float
のような値を挿入したい場合400.79
、自動的400.790008544922
に NHibernate に挿入されます。では、なぜ間違った値を挿入するのでしょうか?
1 に答える
2
コードまたは基になるデータテーブルへの NHibernate マッピングのいずれかで、float が double を通過することを期待しています。
LINQPad でこれを試してみると:
float f = 400.79F;
double d = f;
d.Dump();
出力は次のとおりです。400,790008544922
.Net 型から SqlServer データ型への NHibernate のマッピングについて説明しているこのブログに基づいて、型 REAL (FLOAT(24) の同義語) のデータ列のみが float (Single) にマップされ、他の非整数データ型は double または decimal にマップされます。
于 2013-02-02T10:24:06.093 に答える