为什么在 SQL Server 中从 float 到 varchar 的转换要四舍五入?

2024-05-04

以下 SQL,

declare @a as float, @b as float

select @a=1.353954 , @b=1.353956
select 
CAST(@a as VARCHAR(40)) AS a_float_to_varchar ,
CAST(@b as VARCHAR(40)) AS b_float_to_varchar

结果是

a_float_to_varchar                       b_float_to_varchar
---------------------------------------- ----------------------------------------
1.35395                                  1.35396

基于“浮点”和“实数”(Transact-SQL) http://msdn.microsoft.com/en-us/library/ms173773.aspx.

Float 的精度为 15 位,所以我不确定为什么转换为 varchar 时数字会被四舍五入。


同样来自您的链接(实际上是第一行):

近似数数据类型...

如果您想要精确的精度,请不要使用float.

话虽这么说,有一个功能STR() http://msdn.microsoft.com/en-us/library/ms189527.aspx专门用于转换float到字符数据类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 SQL Server 中从 float 到 varchar 的转换要四舍五入? 的相关文章

随机推荐