如何在SQL Server中舍入数字

时间:2010-09-22 16:32:13

标签: sql-server sql-server-2005 tsql sql-server-2008

我有一个场景,我需要舍入然后从数字中删除额外的零。所以,如果我有一个我已经舍入的数字(12.456400000),我希望删除零。有没有我可以用来删除这些数字的功能?圆函数似乎将零保留在原位?

总是非常欣赏输入。

- S

3 个答案:

答案 0 :(得分:1)

当然,试试这个:

select replace(rtrim(replace('12.456400000', '0', ' ')), ' ', '0')

答案 1 :(得分:1)

创建用户定义的函数(MSDN link)并最小化代码。:

CREATE FUNCTION [dbo].[RemoveTrailingZeros] 
(
    @Value decimal
)
RETURNS decimal
AS
BEGIN
    RETURN replace(rtrim(replace(@Value, '0', ' ')), ' ', '0')
END

您可以按如下方式使用它:

SELECT dbo.RemoveTrailingZeros(12.456400000)

答案 2 :(得分:0)

据推测,您知道要舍入到的小数位数,因此您可以使用ROUND之外的正确DP数转换为十进制数据类型

CAST(ROUND(Field, 4) AS DECIMAL(12, 4))