declare @i float
set @i=1235.8
select cast(@i as decimal(12,2))

解决方案 »

  1.   

    declare @n money
    set @n = 23456.832
    select convert(varchar(100),cast(cast(@n as numeric(10,2)) as money),1)
      

  2.   

    用convert例如:
    declare @a money
    set @a=123456.9
    select convert(varchar,@a,1)
      

  3.   

    不行呀...我用asp中的rs("字段")输出时就变成了1235.8了..而不是1,235.80
      

  4.   


    在下表中,左列表示从 money 或 smallmoney 转换为字符数据时的 style 值。值 输出 
    0(默认值) 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如 4235.98。 
    1 小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如 3,510.92。 
    2 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如 4235.9819。  
      

  5.   

    为了考验我自己,我自己写了一个Function,不知道能不能帮你!
    大力说的方法应该是可以的!!create function dbo.f_ConvNum(
    @dInputNum float
    )
    returns varchar(100)
    as
    begin
    declare @OutPutNum varchar(100)
    declare @strTemp varchar(100) set @strTemp=cast(cast(@dInputNum as decimal(20,2)) as varchar(100))
    set @OutPutNum=right(@strTemp,3)
    set @strTemp=left(@strTemp,len(@strTemp)-3)
    while(len(@strTemp)>3)
    begin
    set @OutPutNum=','+ right(@strTemp,3)+@OutPutNum
    set @strTemp=left(@strTemp,len(@strTemp)-3)
    end set @OutPutNum=@strTemp+@OutPutNumreturn @OutPutNum
    end----------------------------
    调用:
    select dbo.f_ConvNum(3144566123.3)