如何将numeric型转换为科学计数法表示

hxr20021811 2008-01-25 09:15:16
例如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))
请各位帮帮忙,谢谢啦^_^
...全文
177 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxr20021811 2008-01-25
  • 打赏
  • 举报
回复
实在没办法解决,大家帮忙一下吧
hxr20021811 2008-01-25
  • 打赏
  • 举报
回复
大家帮帮忙啊
hxr20021811 2008-01-25
  • 打赏
  • 举报
回复
谢谢大家
不过用了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


chuifengde 2008-01-25
  • 打赏
  • 举报
回复
declare @a decimal(30,2)
set @a=12300000000072.48

select convert(varchar,convert(float,@a),2)

--result
/*------------------------------
1.230000000007248e+013

(所影响的行数为 1 行)

*/
昵称被占用了 2008-01-25
  • 打赏
  • 举报
回复
--函数
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 行)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧