我有一个浮点列,其中包含不同长度的数字,我正在尝试将它们转换为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之后
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时该数字被舍入