Sql Postgres在插入时自动对数字进行舍入
我有一张如下所示的表:Sql Postgres在插入时自动对数字进行舍入,sql,postgresql,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)
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)
);
67035a35-e5df-495b-95d5-cb3b4041c7b4 test 5 0.000 2.000 91858e7a-3440-4959-9074-9d197d6c97fc
然后,我尝试用这句话插入:
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));
它起作用了。从表中选择时,它会插入值,然后数值已四舍五入,如下所示:
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)
);
67035a35-e5df-495b-95d5-cb3b4041c7b4 test 5 0.000 2.000 91858e7a-3440-4959-9074-9d197d6c97fc
值2.000和0.000是四舍五入的,但我需要它们是精确的值
我正在使用DataGrip IDE,但我认为它与此无关。
5/214
将作为整数除法执行。即,结果将是整数
如果需要浮点除法,只需执行5.0/214
(或使用
cast
,例如cast(5作为数字(10,3))/2145/214
将作为整数除法执行。即,结果将是整数
如果需要浮点除法,只需执行5.0/214
(或使用cast
,例如cast(5为数字(10,3))/214尝试5.0/214进行浮点除法。这很有效,谢谢。如果您创建了一个答案,那么我将关闭此答案。请尝试5.0/214进行浮点除法。这很有效,谢谢。如果您创建了一个答案,那么我将关闭此答案。