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