我的表格如下所示:
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,但我认为它与它没有任何关系。
答案 0 :(得分:2)
5/214
将作为整数除法执行。即结果将是整数。
如果您想要浮点除法,只需执行5.0/214
。
(或使用cast
,例如cast(5 as NUMERIC(10, 3)) / 214
。)