【问题标题】:How to show trailing zeroes with float如何用浮点数显示尾随零
【发布时间】:2012-06-07 04:41:10
【问题描述】:

使用 SQL Server 2000

使用浮点数时不显示零。

查询

insert into table1 values ('01.10')
insert into table1 values ('10.50')
insert into table1 values ('02.02')

输出

Values (datatype is float)

01.1
10.5
02.02
...

如何同时显示最后一个零

预期输出

值(数据类型为浮点数)

01.10
10.50
02.02
...

【问题讨论】:

  • 为什么您的应用程序/前端/报告层没有进行这种格式化?这不应该在数据库端完成。
  • 浮点数没有尾随零,如果有,它们将是二进制而不是十进制。
  • @EJP 你知道他的意思,对吧?他说的是在表示方面的尾随零,而不是在存储方面。

标签: sql sql-server tsql sql-server-2000


【解决方案1】:

为什么要使用 FLOAT?我发现在很多情况下,人们在不了解 FLOAT 的局限性或特殊性时会使用它。对于存储小数点后 2 位的十进制值,我会改用小数。

CREATE TABLE #floob(f FLOAT, d DECIMAL(10,2));

INSERT #floob SELECT 2.02, 2.02;
INSERT #floob SELECT 2.7, 2.7;
INSERT #floob SELECT 1.5, 1.5;

SELECT f, f_as_d = CONVERT(DECIMAL(10,2), f), d FROM #floob;

结果:

f        f_as_d   d
------   ------   ------
2.02     2.02     2.02
2.7      2.70     2.70
1.5      1.50     1.50

【讨论】:

  • 嗨亚伦,在我的例子中,我将小数显示为字符数据类型,我的输出在 Excel 表中。我正在尝试使用 '"' +[Value]+ '"'+'=' 保留小数点中的尾随零,但它似乎不起作用。但是,这适用于前导零。
  • @Sana 这似乎是 Excel 显示问题,而不是 T-SQL 中的编程问题。要在 Excel 中保留尾随零,您需要将这些单元格格式化为适当的数字类型。
猜你喜欢
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 2017-09-19
  • 1970-01-01
  • 2022-01-18
  • 2011-12-09
相关资源
最近更新 更多