表A
中的列T
的值:
9.2135
13.0000
如果我使用函数round(A,3)
,结果是:
9.214
13.000
如何获得:
9.214
13
答案 0 :(得分:2)
不要强制转换为float
。如果无法准确表示数字,则浮点数仅存储近似值。您可能会得到意外的结果。例如:
SELECT 0.2::float
结果:
0.20000000000000001
出于表示目的(将数字显示为文本),请使用to_char()
仅使用重要的小数位显示小数点有点棘手。为此添加rtrim()
:
SELECT rtrim(to_char(nr, 'FM99999999990.999'), '.') AS nr
答案 1 :(得分:-2)
简单地将列作为浮点运行实现此
select round(9.2135,3)::float;
返回9.214
select round(13.00000,3)::float;
返回13