SQL 自定义四舍五入

时间:2023-02-05 19:06:55
--==============================================
--  自定义的四舍五入(四舍五入后的所有尾数遇进则进)
--  by 小天使 2015-11-12
--  使用方法  SELECT dbo.fn_MyRound(4.5445,2)
--==============================================
CREATE FUNCTION [dbo].[fn_MyRound]
(
 @val  DECIMAL(20,10),--要输入的浮点数
 @len  INT=2,         --四舍五入所要的长度   
 @alen int=4          --浮点数的小数位数【如果小于(浮点数的小数位数)则截取】
)
 RETURNS FLOAT
AS
BEGIN

 if @alen<=@len
 begin
  RETURN CONVERT(FLOAT, round(@val,@len))
 end

 WHILE @alen>@len
 BEGIN
  SET @alen=@alen-1
  SET @val=round(@val,@alen) 
 END
 RETURN CONVERT(FLOAT, @val)

END