if object_id('fnRound') is not null
drop function fnRound
GO
create function fnRound(@num float,@i int)
returns varchar(20)
as
begin
declare @str varchar(20) /*转换成字符类型*/
declare @str2 varchar(20) /*小数位数后面的字符串*/
declare @str3 varchar(2) /*小数位数字符串*/
set @str = convert(varchar,@num)
if (charindex('.',reverse(@str)) <= 0)
begin
if @i > 0
begin
set @str = @str + '.'
while @i > 0
begin
set @str = @str + '0'
set @i = @i - 1
end
end
return @str
end
set @str2 = reverse(substring(reverse(@str),1,charindex('.',reverse(@str)) - 1 - @i))
set @str3 = substring(@str,charindex('.',@str) + 1,@i)
if @str2%5 = 0 and @str3%2 = 0 /*如果符合"五成双"*/
set @str = substring(@str,1,charindex('.',@str) + @i)
else /*否则四舍五入*/
set @str = convert(varchar,round(@num,@i))
RETURN @str
end
GO
转载于:https://my.oschina.net/qihaitao/blog/415369