SQL Server中的舍入和值比较问题

时间:2012-05-04 11:23:24

标签: sql sql-server-2008

当我试图得出两个明显相等的数字之间的差异时,我得到的数字不等于零。

product_price       min_product_price   price_dif
40,609756097561     40,609756097561         -2,1316282072803E-14

我理解这可能是一个难以回答的问题而没有导致这一点的所有问题,但我会尝试解释,

product_price直接来自ERP数据库。

min_product_price是通过

获得的
MIN(ItemSellingPrices.UnitPrice) as min_product_price

与group by子句一起使用。这不应该意味着数字是一样的吗?

我对这类问题没有经验,所以如果这太基础,我会道歉。

1 个答案:

答案 0 :(得分:2)

看起来像是浮点问题。

如果您要将货币值存储在floatreal列中,请尝试使用decimal / numeric数据类型。

例如,为了存储12个十进制值,您可以使用decimal(18, 12)