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