0

可能重复:
在 C#
Double 变量中比较双精度值时出现错误值的问题

我将一些值存储在 MySQL 数据库的表中,列类型为double(8,2). 我正在获取该数据,然后调用 LINQ 的Sum()扩展方法。该操作返回例如384.18。然后我得到第二个值(以相同的方式),我得到例如384.17.

当我做一些数学运算时,结果是:

384.18 - 384.17 = 0.0099999999999909051

为什么不0.01呢?我知道我可以使用该Math.Round()方法,但我想知道为什么我会得到这个结果。

编辑

比较 C# 中的双精度值

4

1 回答 1

0

Double 没有您需要的精度。在 C# 中使用小数,在 SQL 中使用更精确的数字类型 - SQL-Server 将是 NUMERIC(x,y)。不确定MySql equiv。

于 2012-05-18T19:58:49.203 回答