SELECT 9/2
дает 4
получить точный результат для чисел деления
Почему дает автоматически округляется PostgreSQL результата?
Есть несколько вариантов предотвращения этого? (То есть мне нужно, чтобы после деления, если результат равен float, возвращает точно и не округленный результат).
UPDATE:
, например, из функции, мне нужно вернуть плавающий номер
CREATE OR REPLACE FUNCTION division_test (arg1 INTEGER, arg2 INTEGER,) RETURNS NUMERIC
AS $$
BEGIN
RETURN arg1/arg2;
END;
$$
LANGUAGE plpgsql;
SELECT division_test (9,2)
результат: 4
Как решить эту проблему?
Пожалуйста, смотрите обновленный вопрос. Что делать в этом случае? – RIKI
@OTARIKI: поскольку оба входных аргумента являются целыми числами, результат также будет отлит к целому числу, что даст вам «округленный» результат. При изменении типа входного параметра на «реальный» результат деления также является «реальным». –
@ a_horse_with_no_name --- Спасибо. – RIKI