Trunc 函数不指定小数

问题描述 投票:0回答:1

我的表格中有以下内容:

create table example (

     col_a int4,
     col_b int4,
     average_col = numeric


)

col_a = 309
col_b = 16

309 / 16 = 19.3125

当我执行以下操作时,我只得到 19。不是(19.0,或 19.3125,19.3):

TRUNC((col_a/col_b),1) = 19

我做错了什么?

postgresql
1个回答
0
投票

因为您要除以整数,所以 Postgres 只进行整数数学运算。 309/16 是 19。

您需要将至少一个整数转换为数字(不是浮点数,带有第二个参数的

trunc
需要一个数字),然后除以。

select trunc(309::numeric/16,1)

示范

© www.soinside.com 2019 - 2024. All rights reserved.