0

我有两个数字作为十进制存储在数据库中,精度等于 9。我的目标是添加这两个数字并更新数据库中的值。

DECLARE @v1 DECIMAL(9, 5), @v2 DECIMAL(9, 5)
SET @v1 = 9503.34000
SET @v2 = 1357.62000
SELECT CAST(@v1 + @v2 AS DECIMAL(9, 5))

当我在 SQL 中添加它时,它会引发溢出错误,但是将其更改为 10,5 会导致10860.96000

我如何告诉 SQL 根据我想要的精度添加和返回结果。我希望这笔款项返回我 9,5 而不是 10,5。

4

1 回答 1

4

无法返回DECIMAL(9,5)。小数点前有 5 位数字,因为 9,503 + 1,357 大于 10,000。

如果您只想要总共使用 9 位数字CAST(@v1 +@v2 as DECIMAL(10,4))。无论如何,您似乎没有使用小数点后 5 位。

于 2012-05-05T14:37:38.373 回答