C# 双精度类型数学运算

本文关键字:运算 类型 双精度 | 更新日期: 2023-09-27 18:34:49

可能的重复项:
在 C#
中比较双精度值的问题 双变量保持错误值

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

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

384.18 - 384.17 = 0.0099999999999909051

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

编辑

比较 C# 中的双精度值

C# 双精度类型数学运算

Double 没有您需要的精度。在 C# 中使用十进制,在 SQL - SQL-Server 中使用更精确的数值类型是 NUMERIC(x,y(。不确定 MySql 等效。