求SQL float 转varchar

reallylovesky 2009-05-31 03:14:57
SQL里面float 转为 varchar为什么会位数丢失
如我的float为1234.123 转化后要求varchar也为 1234.123


select cast(cast(1234.123 as decimal(18,3)) as varchar(50))
可以满足需求,但是小数位数不确定是无法满足
...全文
942 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanxigang 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jonasfeng 的回复:]
SQL codedeclare@tfloatselect@t=206.260695187175select@t+ltrim('')

结果
206.260695187175
[/Quote]
大哥 你这个返回的还是个float呀 还相当于 Select @t
fqbnet2050 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 JonasFeng 的回复:]
SQL codedeclare@tfloatselect@t=206.260695187175select@t+ltrim('')

把数字改小一点结果
206.260695187175
[/Quote]

declare @t float
select @t = 206.26

select @t + ltrim('')
--206.25999999999999
JonasFeng 2009-05-31
  • 打赏
  • 举报
回复
declare @t float
select @t = 206.260695187175

select @t + ltrim('')


结果
206.260695187175
reallylovesky 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xiequan2 的回复:]



SQL codeselectconvert(varchar,30206.260695187175111111)------------------------------30206.260695187175111111(所影响的行数为1行)
[/Quote]
你用delcare会发现不符合要求
xiequan2 2009-05-31
  • 打赏
  • 举报
回复



select convert(varchar,30206.260695187175111111)
------------------------------
30206.260695187175111111

(所影响的行数为 1 行)
reallylovesky 2009-05-31
  • 打赏
  • 举报
回复

declare @S float
set @S=30206.260695187175
select result=LOWER(@S)
还是没法
ai_li7758521 2009-05-31
  • 打赏
  • 举报
回复
select result=LOWER(123.1230)

result
----------------------------------------------------------------------------------
123.1230

(1 行受影响)
JonasFeng 2009-05-31
  • 打赏
  • 举报
回复
楼上的不符合楼主的要求呀。
reallylovesky 2009-05-31
  • 打赏
  • 举报
回复

declare @S float
set @S=30206.260695187175
select convert(nvarchar(50),@S)
select cast(@S as nvarchar(50))

小数部分不能全部保留
reallylovesky 2009-05-31
  • 打赏
  • 举报
回复

declare @f float
set @f=1234.12311111166666
select ltrim(@f)
1234.12
jwdream2008 2009-05-31
  • 打赏
  • 举报
回复
select convert(nvarchar(50),1234.423)
select cast(1234.423 as nvarchar(50))
百年树人 2009-05-31
  • 打赏
  • 举报
回复
declare @f float
set @f=1234.123
select ltrim(@f)
/**
----------------------
1234.12

(所影响的行数为 1 行)
**/

34,575

社区成员

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

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