为了考验我自己,我自己写了一个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)
set @n = 23456.832
select convert(varchar(100),cast(cast(@n as numeric(10,2)) as money),1)
declare @a money
set @a=123456.9
select convert(varchar,@a,1)
在下表中,左列表示从 money 或 smallmoney 转换为字符数据时的 style 值。值 输出
0(默认值) 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如 4235.98。
1 小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如 3,510.92。
2 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如 4235.9819。
大力说的方法应该是可以的!!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)