SQL里面float 转为 varchar为什么会位数丢失
如我的float为1234.123 转化后要求varchar也为 1234.123
select cast(cast(1234.123 as decimal(18,3)) as varchar(50)) 
可以满足需求,但是小数位数不确定是无法满足

解决方案 »

  1.   

    declare @f float
    set @f=1234.123
    select ltrim(@f)
    /**
    ---------------------- 
    1234.12(所影响的行数为 1 行)
    **/
      

  2.   

    select convert(nvarchar(50),1234.423)
    select cast(1234.423 as nvarchar(50))
      

  3.   


    declare @f float
    set @f=1234.12311111166666
    select ltrim(@f)
    1234.12
      

  4.   


    declare @S float
    set @S=30206.260695187175
    select convert(nvarchar(50),@S)
    select cast(@S as nvarchar(50))小数部分不能全部保留
      

  5.   

    select result=LOWER(123.1230)result
    ----------------------------------------------------------------------------------
    123.1230(1 行受影响)
      

  6.   


    declare @S float
    set @S=30206.260695187175
    select result=LOWER(@S)
    还是没法
      

  7.   


    select convert(varchar,30206.260695187175111111)
    ------------------------------ 
    30206.260695187175111111(所影响的行数为 1 行)
      

  8.   

    declare @t float
    select @t =  206.260695187175
     
    select @t + ltrim('')结果
    206.260695187175
      

  9.   


    declare @t float
    select @t =  206.26
     
    select @t + ltrim('')
    --206.25999999999999
      

  10.   

    大哥 你这个返回的还是个float呀 还相当于 Select @t