我有一个numeric(38,8)
类型的SQL Server列。我将十进制值“ 11.25”作为参数传递,并在存储过程中像这样插入到数据库中:
PaymentTotal = CAST(@PaymentTotal AS DECIMAL(38,8))
数据正在以11.00000000的形式插入数据库
我不明白为什么不是11.25000000吗?
我尝试过(10,2)
和其他方法的组合,我尝试过将其投射为float
和int
,但似乎没有什么能阻止四舍五入。
答案 0 :(得分:0)
DECLARE @PaymentTotal DECIMAL = 12.5
SELECT CAST(@PaymentTotal AS DECIMAL(38,8))
上面的代码将返回12.00000000
您必须像这样指定变量类型的精度:
DECLARE @PaymentTotal DECIMAL(38,8) = 12.5
SELECT CAST(@PaymentTotal AS DECIMAL(38,8))
,上面的代码将返回12.50000000