例如12300000000072.48,应该显示为1.230000000007248e+013,而不是1.23e+013,我写的sql是
declare @a numeric
set @a=12300000000072.48
select cast(cast(@a as float(14,1))as nvarchar(100))
请各位帮帮忙,谢谢啦^_^
declare @a numeric
set @a=12300000000072.48
select cast(cast(@a as float(14,1))as nvarchar(100))
请各位帮帮忙,谢谢啦^_^
Create function fn_NumT(
@n numeric(28,6)
)
returns varchar(60)
as
begin
declare @x numeric(38,20)
declare @i int
set @i=0
set @x=@n
while @x>1
begin
set @i=@i+1
set @x=@x/10
end
while @x<1
begin
set @i=@i-1
set @x=@x*10
end
return cast(@x as varchar(60))+'e'+cast(@i as varchar(20))
end--调用
select dbo.fn_NumT(12300000000072.48)
--结果
------------------------------------------------------------
1.23000000000724800000e13(所影响的行数为 1 行)
set @a=12300000000072.48select convert(varchar,convert(float,@a),2)--result
/*------------------------------
1.230000000007248e+013(所影响的行数为 1 行)*/
不过用了chuifengde的方法,怎么把0去掉呢
declare @a numeric(36,18)
set @a=1200.48
select convert(varchar,convert(float,@a),2)结果是1.200480000000000e+003,我想得到的是1.20048 e+003