截取小数点后面1位数或者两位数,不要四舍五入,前面的也给分,大家继续,比如18.8577截取为18.85,谢谢

解决方案 »

  1.   

    --一位
    select cast(floor(18.8577 * 10)/10.0 as decimal(18,1))
    /*
                         
    -------------------- 
    18.8(所影响的行数为 1 行)
    */--两位
    select cast(floor(18.8577 * 100)/100.0 as decimal(18,2))
    /*                     
    -------------------- 
    18.85(所影响的行数为 1 行)
    */
      

  2.   

    declare @data float
    set @data=17.842323
    select substring(cast(@data as nvarchar(10)),1 ,charindex('.',cast(@data as nvarchar(10)))+1 )
      

  3.   

    select cast(floor(17.858*10)/10 as dec(18,1)) as num
    num                  
    -------------------- 
    17.8(所影响的行数为 1 行)select cast(floor(17.858*100)/100 as dec(18,2)) as numnum                  
    -------------------- 
    17.85(所影响的行数为 1 行)