存储过程返回错误的小数点

时间:2013-12-02 15:52:43

标签: c# java sql stored-procedures aspxgridview

你好我有一个用于过滤的PropertiesComboBox,我使用存储过程填充它。但是,当在PropertiesComboBox中返回值时,将返回额外的0。当我只希望它返回3.00

时,它返回3.0000

这是我的存储过程代码:

CREATE PROC GetPromoValueColumn @Platform varchar(30)
AS
BEGIN
    SELECT      p.Value
    FROM        PromotionalCode p
    JOIN        Application a
    ON          a.ID = p.AppID
    GROUP BY    p.Value
END

知道为什么会这样吗?

感谢。

3 个答案:

答案 0 :(得分:1)

p.Value的精度允许小数点后4位的值。

数学上,3,3.0,3.00,3.000,3.00和3.00000是相同的值:3。

完全取决于您以对您的应用程序有意义的方式对其进行格式化。

答案 1 :(得分:0)

您可能将PromotionalCode.p字段定义为十进制(X,4)

X代表您的号码的总位数,4是小数位数。 如果您尝试将表列重新定义为十进制(X,2),则只能看到2位小数。

ES:

ALTER TABLE PromotionalCode MODIFY COLUMN p DECIMAL(10,2) DEFAULT NULL;

答案 2 :(得分:0)

declare @id decimal(16,3) 

您需要根据您的要求设置小数值