例如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))
请各位帮帮忙,谢谢啦^_^

解决方案 »

  1.   

    --函数
    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 行)
      

  2.   

    declare @a decimal(30,2)
    set @a=12300000000072.48select convert(varchar,convert(float,@a),2)--result
    /*------------------------------ 
    1.230000000007248e+013(所影响的行数为 1 行)*/
      

  3.   

    谢谢大家
    不过用了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