我有这个公式来获得FinalQuantity = Quantity / Price
。 Quantity
声明为double
,Price
声明为float
。
如果我在代码中手动输入值。 FinalQuantity = 9000000 / 102.6411
它的输出为87684.173299000118
。
但是如果我将值分配给变量Quantity
和Price
。它将输出87684.174988370942
。我尝试将Quantity
转换为Integer
和Price
转换为double
,但仍获得相同的结果。
有人可以帮我解决问题。
答案 0 :(得分:2)
问题是浮点值是通过值和exponenent计算的。这允许您在少量内存中存储大量数字表示。这也意味着你并不总是得到你正在寻找的数字,非常非常接近。这就是为什么在比较浮点值时,可以在一定容差范围内对它们进行比较。
换句话说......正如其他人所说的......总是使用Decimal