Postgres会自动舍入插入时的数字

时间:2016-05-04 09:41:20

标签: sql postgresql

我的表格如下所示:

CREATE TABLE word(
  id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  word TEXT NOT NULL,
  count INT NOT NULL,
  ratio NUMERIC(10, 3) NOT NULL,
  percent_of_total NUMERIC(10, 3) NOT NULL,
  daily_count_id UUID REFERENCES daily_count(id)
);

然后我尝试插入此声明:

INSERT INTO word (word, count, ratio, percent_of_total, daily_count_id)
    VALUES ('test', 5, 5/214, 5*100/214,
            (SELECT id from daily_count WHERE day_of_count = CURRENT_DATE+1));

有效。它从表中选择时插入值,然后数值如下所示舍入:

67035a35-e5df-495b-95d5-cb3b4041c7b4    test    5   0.000   2.000   91858e7a-3440-4959-9074-9d197d6c97fc

值为2.000和0.000是四舍五入的,但我需要它们才是精确值。

我正在使用DataGrip IDE,但我认为它与它没有任何关系。

1 个答案:

答案 0 :(得分:2)

5/214将作为整数除法执行。即结果将是整数。

如果您想要浮点除法,只需执行5.0/214

(或使用cast,例如cast(5 as NUMERIC(10, 3)) / 214。)