SQL查询结果问题
问题描述:
我有两个SQL查询都返回SQL查询结果问题
选择圆(转换(浮动, '24367.723'),2)
结果:24367.72
二:
select convert(varchar(20),round(convert(float,'24367.723'),2))
结果:24367.7
为什么第二次查询返回排除转换后的最后一位数字为varchar
由于提前
答
如果不指定样式参数的转换功能你会得到默认的样式(0)。
即,它是等效于做
select convert(varchar(20),round(convert(float,'24367.723'),2), 0)
的default style for converting from float to varchar显示最大为6个数字。
答
使用浮点数时,STR()函数通常会根据MSDN给出更好的结果,因为您有更多的控制权。
E.g.
select str(convert(float,'24367.723'),8, 2)
答
不要使用浮动,使用确切的数字。像这样的东西
convert(varchar(20), convert(numeric(20,2), '24367.72'))