浮点数据类型,小数点后有 2 位数字

IT *_*her 3 sql-server datatypes sql-server-2008-r2

在 SQL Server 中,float 数据类型在小数点后不显示尾随零

declare @num as float
set @num=5.20
select @num
Run Code Online (Sandbox Code Playgroud)

只会显示5.2 但我希望它显示为5.20

经过一番研究,我发现它可以通过使用来解决

select CAST(@num AS numeric(10,2))
Run Code Online (Sandbox Code Playgroud)

但这不是我期望的解决方案。有没有像设置数据类型或更改数据类型这样的方法,以便我可以实现相同的目标?(如果 float 中有任何变体可以做同样的事情会更好)

如果可能,那么我不需要更改 SQL 语句并包含强制转换等。所以请帮我解决这个问题。

Tho*_*ger 9

这可以通过decimal数据类型来实现。

请参阅下面的示例:

declare @num as float;
set @num=5.20;

select convert(decimal(10, 2), @num);
Run Code Online (Sandbox Code Playgroud)

这里的输出将是5.20.

重新阅读您的问题后:

但这不是我期望的解决方案。有没有像设置数据类型或更改数据类型这样的方法,以便我可以实现相同的目标?

您是否有理由专门使用float?通常,当绰绰有余时,人们往往会默认使用该数据类型decimal

  • +1 ...大多数人也会对 [浮动中的有趣事情]感到惊讶(http://blogs.msdn.com/b/khen1234/archive/2005/05/13/417153.aspx) (2认同)
  • 只是为了一个感叹号:除非您绝对确定需要,否则不要使用 FLOAT。 (2认同)