当我想插入像float
这样的400.79
值时,它会自动在NHibernate中插入400.790008544922
。那么,为什么插入错误的值?
答案 0 :(得分:2)
我希望你的float能够在你的代码中或在NHibernate映射到底层数据表的地方传递一个double。
如果我在LINQPad中尝试这个:
float f = 400.79F;
double d = f;
d.Dump();
输出为:400,790008544922
基于描述从.Net类型到SqlServer数据类型的NHibernate映射的this blog,只有REAL类型的数据列(FLOAT(24)的同义词)映射到float(Single),其他非整数数据类型映射到无论是双倍还是小数。