CAST错误地将float转换为varchar

6 sql casting

组,我确定这是用户错误,但我试图将一列数字从浮点数转换为varchar.它适用于7位以下的任何数字,但如果数字为7位数,则将其转换为科学记数法或者他们称之为的数字.例如:

440000显示440000 1299125显示1.29913e + 006

看起来它正在向上舍入7位数字......我不知道为什么.

我试图转换它,因为我需要将它连接到其他所有VARCHAR字段

任何帮助是极大的赞赏

tom*_*tom 13

将你的浮动包装在str()函数中,当只给出一个参数时,它会产生副作用,即丢弃小数点右边的所有内容.

问题:

select cast(cast(1234567890.01 as float) as varchar)

1.23457e+009
Run Code Online (Sandbox Code Playgroud)

没有小数的答案:

select str(cast(1234567890.01 as float))

1234567890
Run Code Online (Sandbox Code Playgroud)

小数答案:

select str(cast(1234567890.01 as float),13,2)

1234567890.01
Run Code Online (Sandbox Code Playgroud)