您的位置:首页 > 其它

去掉小数点后面多余的0

2012-12-12 16:19 351 查看
原文出处:http://www.cnblogs.com/zhycyq/archive/2012/06/07/2539750.html

select 5000/10000.0 --想变成0.5

select 5500/10000.0 --想变成0.55

select 5550/10000.0 --想变成0.555

select 5555/10000.0 --想变成0.5555

其结果分别为:0.5000000 0.5500000 0.5550000 0.5555000

一、如果想去掉数字5后面多余的0 ,需要转化一下:

select CONVERT(FLOAT,5000/10000.0) --想变成0.5

select CONVERT(FLOAT,5500/10000.0) --想变成0.55

select CONVERT(FLOAT,5550/10000.0) --想变成0.555

select CONVERT(FLOAT,5555/10000.0) --想变成0.5555

其结果分别为: 0.5 0.55 0.555 0.5555

二、创建函数:

在sql server 建个函数ClearZero,使用这个函数去掉小数点后面多余的零。

CREATE function [dbo].[ClearZero](@inValue varchar(50))

returns varchar(50)

as

begin

declare @returnValue varchar(20)

if(@inValue='')

set @returnValue='' --空的时候为空

else if (charindex('.',@inValue) ='0')

set @returnValue=@inValue --针对不含小数点的

else if ( substring(reverse(@inValue),patindex('%[^0]%',reverse(@inValue)),1)='.')

set @returnValue =left(@inValue,len(@inValue)-patindex('%[^0]%',reverse(@inValue))) --针对小数点后全是0的

else

set @returnValue =left(@inValue,len(@inValue)- patindex('%[^0]%.%',reverse(@inValue))+1) --其他任何情形

return @returnValue

end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: