1

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

4

2 回答 2

2

如果您希望输入的值(以 10 为基数)被精确表示,您可能希望decimal在 C# 和SQL Server 中使用。DECIMAL(p,s)

C#(和SQL Server 中的和)中的类型float和是二进制的(以 2 为基数),不能精确地表示许多十进制值。当然,十进制仍然具有有限的精度(在 C# 中固定,以及您在 SQL Server 中指定的内容)。doubleREALFLOAT

于 2013-06-02T06:32:58.970 回答
-1

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

于 2013-06-02T06:11:35.467 回答