使用t-sql舍入的正确方法

时间:2009-12-08 12:27:42

标签: tsql sum rounding

以下t-sql中的正确方法是什么? : sum(rounded(fractions,2))round(sum(of fractions),2) ta!

我已经尝试了两种方法,并且我的总数仍然以不同的结果为每个不知道我是否需要截断somwhere

我想要x,y * @v = z 所以sum(x)* @v = sum(z)

谢谢

1 个答案:

答案 0 :(得分:4)

round(sum(of fractions),2)

是最准确的,因为你只是在最后一次四舍五入。 另一方面,你在求和之前首先对每个单独的值进行四舍五入,这样最终结果可能不太准确。

编辑:非常基本的例子:

DECLARE @Data TABLE (Val DECIMAL(9,2))
INSERT @Data VALUES (1.15)
INSERT @Data VALUES (1.15)
INSERT @Data VALUES (1.15)

SELECT ROUND(SUM(Val), 1) As Sum1, SUM(ROUND(Val, 1)) AS Sum2
FROM @Data

给出Sum1 = 3.50和Sum2 = 3.60。 1.15 + 1.15 + 1.15 = 3.45(真实总数)。因此,Sum1显然更准确