想象一下下面的情况。 量加入以在一个循环中一共有:
float total = 0;
float[] amounts = new float[]{...};
foreach(float amount in amounts)
{
total += amount;
}
total
,如逢因为所有的amount
s的写入数据库。 当我计算SUM(amount)
在SQL中,其导致从不同的值total
。 此外,当我在C#相同的计算,但这次加入量以double类型的值,
double total = 0;
//the rest of the code is the same as above
然后total
表示正确的值。
难道这是一个浮动和双之间的精度差异引起的?
请注意,这取决于值。 大多数这种计算的结果是正确的。