插入数据库时​​浮动值更改

时间:2013-06-02 06:06:28

标签: linq sql-server-2008-r2

我正在使用LINQtoSQL映射器和LINQ,以便将值插入我的数据库(SQL Server 2008 R2)。我的应用程序中有3层,当我在插入新行时跟踪我的应用程序时,一切顺利。但在检查我的数据库后,float类型的一个字段的值会发生变化。例如,当我插入12.69时,在数据库中的值为12.6899995803833。我完全糊涂了,不知道该怎么做。非常感谢。

2 个答案:

答案 0 :(得分:2)

如果您希望输入的值(在基数10中)准确表示,您可能希望在SQL Server中使用decimal和在SQL Server中使用DECIMAL(p,s)

C#中的floatdouble类型(以及SQL Server中的REALFLOAT)是二进制(基数2),并不能准确表示许多小数值。当然,十进制仍然具有有限的精度(在C#中修复,以及您在SQL Server中指定的内容)。

答案 1 :(得分:-1)

这听起来像是一个问题,您可以更精确地从一种类型更改为另一种类型。