我想这样 1.7及取2 1.6取1 就像四舍五入那样

解决方案 »

  1.   

    DECLARE @NUM NUMERIC(19,6)
    SELECT @NUM=15.77SELECT @NUM,@NUM-@NUM%1+CASE WHEN @NUM%1-@NUM%0.1>0.6 THEN 1 ELSE 0 END
    --15.770000 16.000000
      

  2.   

    错了.case when 数字 > 0 and 数字 - floor(数字) >= 0.7 then floor(数字) + 1
         when 数字 > 0 and 数字 - floor(数字) < 0.7 then floor(数字)
    end
      

  3.   


    --看你那个字段的精度,如果最大的是 4 位,那么
    select round(字段-0.1112,0)
      

  4.   


    declare @num float
    set @num=15.77
    select cast(@num as int)+cast((@num-cast(@num as int))*10/7 as int)
    /*
    --
    16
      

  5.   

    declare @ decimal(5,1)set @ = 1.7
    select @, floor(@)+floor(@%1/0.7)set @ = 1.6
    select @, floor(@)+floor(@%1/0.7)
      

  6.   

    DECLARE @NUM NUMERIC(19,6)
    SELECT @NUM=15.77SELECT @NUM,@NUM-@NUM%1+CASE WHEN @NUM%1-@NUM%0.1>0.6 THEN 1 ELSE 0 END