我有两个SQL Query Both返回
选择round(convert(float,'24367.723'),2)
结果:24367.72
第二
选择转换(varchar(20),round(转换(float,'24367.723'),2))
结果:24367.7
为什么第二个查询返回会在转换为varchar
后排除最后一个数字先谢谢
答案 0 :(得分:3)
如果没有为convert函数指定样式参数,则会得到默认样式(0)。
即。它相当于做
select convert(varchar(20),round(convert(float,'24367.723'),2), 0)
答案 1 :(得分:0)
当使用浮点数时,STR()函数通常会根据MSDN提供更好的结果,因为您可以更好地控制它。
E.g。
select str(convert(float,'24367.723'),8, 2)
答案 2 :(得分:0)
不要使用花车,请使用精确的数字。像这样的东西
convert(varchar(20), convert(numeric(20,2), '24367.72'))