如何格式化数字而不是尾随小数0?

时间:2014-10-24 11:10:17

标签: sql postgresql types formatting rounding

A中的列T的值:

9.2135
13.0000

如果我使用函数round(A,3),结果是:

9.214 
13.000

如何获得:

9.214
13

2 个答案:

答案 0 :(得分:2)

不要强制转换为float。如果无法准确表示数字,则浮点数仅存储近似值。您可能会得到意外的结果。例如:

SELECT 0.2::float

结果:

0.20000000000000001

出于表示目的(将数字显示为文本),请使用to_char() 仅使用重要的小数位显示小数点有点棘手。为此添加rtrim()

SELECT rtrim(to_char(nr, 'FM99999999990.999'), '.') AS nr

SQL Fiddle.

答案 1 :(得分:-2)

简单地将列作为浮点运行实现此

select round(9.2135,3)::float;

返回9.214

select round(13.00000,3)::float;

返回13