存储过程未按预期保存十进制数

时间:2013-09-11 08:22:21

标签: sql-server stored-procedures

我有一个存储过程,我声明了一个十进制变量

@Limit decimal

我从C#应用程序传递值200.5,并将此值与普通的,非常基本的插入语句一起插入表中。该值保存为201.00,似乎值由于某种原因被四舍五入。

限制的类型是十进制(10,2),任何想法都会发生这种情况。

2 个答案:

答案 0 :(得分:1)

您需要在参数声明中声明精度和比例 - 默认值为18,0

 @Limit decimal(10,2)

答案 1 :(得分:1)

默认情况下,如果没有声明精确的精度和比例,则@Limit变量具有十进制(18,0)类型。 将其声明为declare @Limit decimal(10,2)