相关疑难解决方法(0)

如何在SQL Server中将float转换为varchar

我有一个浮点列,其中包含不同长度的数字,我正在尝试将它们转换为varchar.

有些值超过bigint max size,所以我做不到这样的事情

cast(cast(float_field as bigint) as varchar(100))
Run Code Online (Sandbox Code Playgroud)

我尝试使用十进制,但数字大小不同,所以这也没有用

CONVERT(varchar(100), Cast(float_field as decimal(38, 0)))
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

更新:

样本值为2.2000012095022E + 26.

sql-server-2008

122
推荐指数
5
解决办法
40万
查看次数

为什么在SQL Server中舍入从float转换为varchar的原因

继sql之后

declare @a as float, @b as float

select @a=1.353954 , @b=1.353956
select 
CAST(@a as VARCHAR(40)) AS a_float_to_varchar ,
CAST(@b as VARCHAR(40)) AS b_float_to_varchar
Run Code Online (Sandbox Code Playgroud)

结果是

a_float_to_varchar                       b_float_to_varchar
---------------------------------------- ----------------------------------------
1.35395                                  1.35396
Run Code Online (Sandbox Code Playgroud)

基于

http://msdn.microsoft.com/en-us/library/ms173773.aspx

float具有15位数的精度,因此我不确定为什么在转换为varchar时该数字被舍入

sql-server floating-point sql-server-2005

7
推荐指数
3
解决办法
3万
查看次数