我有两个数字存储在数据库中作为十进制,精度等于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。
答案 0 :(得分:3)
无法返回DECIMAL(9,5)
。您在小数位前面有5位数字,因为9,503 + 1,357大于10,000。
如果您只想要使用9位数CAST(@v1 +@v2 as DECIMAL(10,4))
。你似乎没有使用小数点后第五位。