组, 我确定这是用户错误,但我试图将一列数字从浮点数转换为varchar。它适用于7位以下的任何数字,但如果数字为7位数,则将其转换为科学记数法或者他们称之为的数字。例如:
440000显示440000 1299125显示1.29913e + 006
看起来它正在向上舍入7位数字......我不知道为什么。
我正在尝试转换它,因为我需要将它连接到所有VARCHAR的其他字段
非常感谢任何帮助
答案 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)