-1

当我想插入一个float类似的值400.79时,它会自动插入400.790008544922到 NHibernate 中。那么,为什么它会插入错误的值呢?

4

1 回答 1

2

我希望您的浮点数在您的代码中或在 NHibernate 映射到基础数据表中通过双精度。

如果我在 LINQPad 中尝试这个:

float f = 400.79F;
double d = f;
d.Dump();

输出是:400,790008544922

根据这篇描述从 .Net 类型到 SqlServer 数据类型的 NHibernate 映射的博客,只有 REAL 类型的数据列(FLOAT(24) 的同义词)映射到浮点数(Single),其他非整数数据类型映射到双精度或十进制。

于 2013-02-02T10:24:06.093 回答