CAST错误地将float转换为varchar

时间:2009-06-02 13:54:10

标签: sql casting

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

440000显示440000 1299125显示1.29913e + 006

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

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

非常感谢任何帮助

2 个答案:

答案 0 :(得分:13)

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

问题:

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

1.23457e+009

无小数答案:

select str(cast(1234567890.01 as float))

1234567890

回答小数:

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

1234567890.01

答案 1 :(得分:2)

select cast(cast(@float as decimal(13,2)) as varchar)