sqlserver 四舍六入五成双(2)
sqlserver 四舍六入五成双(2)
小菜鸟要起飞 发表于3年前
sqlserver 四舍六入五成双(2)
  • 发表于 3年前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: sqlserver 四舍六入五成双
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

共有 人打赏支持
粉丝 0
博文 30
码字总数 8279
×
小菜鸟要起飞
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: