172 похожих чатов

Ребят, перевёл double precision на numeric, а проблемы с математикой

остались(((

CREATE FUNCTION public.test_floor(

) RETURNS numeric
LANGUAGE plpgsql SECURITY DEFINER
AS $$

DECLARE
"vRes" numeric;
"a" numeric = 1;
"b" numeric = 3.085738795296717;

BEGIN
-- "vRes" = TRUNC("a" / "b", 8);
"vRes" = "a" / "b";
RETURN "vRes";
END;
$$

Ожидаю получить 0.3240715, а получаю 0.32407149999999999246

Может есть какие-то сторонние решения?

15 ответов

10 просмотров

А что должно быть на выходе? select 1::numeric(256, 254) / 3.085738795296717::numeric(256, 254);

Владислав-Караван Автор вопроса
Bx
А что должно быть на выходе? select 1::numeric(256...

написал же Ожидаю получить 0.3240715

Никаких сторонних решэний для телепатического определения "что вы хотите получить" — не существует. Или вы разбираетесь сами, или нанимаете толкового бизнес-аналитика, чтобы он вам всё объяснил.

Владислав-Караван Автор вопроса
Ilya Anfimov
Никаких сторонних решэний для телепатического опре...

О каких телепатиях речь? Берём обычный JS, у которого с математикой проблемы, о которых знают все… а теперь берём postgres… энтерпрайз решение, блет…

Владислав Караван
О каких телепатиях речь? Берём обычный JS, у котор...

Ну так это и есть неточное решение. Чётко сформулируйте в Постгресе до какого знака вам нужна точность, тогда и получите нужный результат.

Владислав Караван
О каких телепатиях речь? Берём обычный JS, у котор...

>у которого с математикой проблемы У него нет проблем с математикой. С синтаксисом -- есть, а с математикой у него всё как обычно. Бедненько, но простенько. Встроенные функцыи для нецэлых чисел работают на обычном IEEE754 floating-point double, и всё. И да, если вы сразу не поняли -- как повторить это в postgres, то сядьте и хорошо подумайте. Скорее всего, вы это поймёте.

Ilya Anfimov
>у которого с математикой проблемы У него нет про...

а я не понял, тот самый момент когда качал ловкость вместо интеллекта :)))

Александр Попов
а я не понял, тот самый момент когда качал ловкост...

Просто он вчера весь вечер бежал в обратную сторону, к тому жэ ужэ несколько дней занимается этим вопросом. Он-то должэн понять.

Владислав-Караван Автор вопроса
Nick Nalbantov
Ну так это и есть неточное решение. Чётко сформул...

беру блин, обычный калькулятор на телефоне. И получаю то, что ожидаю. понятно, что есть …00000001, но так как в результате мне нужно 8 знаков после запятой, то это именно то, что я ожидаю, когда делю эти 2 числа. но вот никак не ….4999999… если все тут такие умные, то почему не можете мне помочь? напишите как получить 0.3240715 в этом примере, используя numeric

Владислав Караван
screenshot беру блин, обычный калькулятор на телефоне. И полу...

>если все тут такие умные, то почему не можете мне помочь? You Must Face the Gazeboo Alone...

Владислав Караван
screenshot беру блин, обычный калькулятор на телефоне. И полу...

Впрочем, если бы тут был чат бизнес-аналитиков -- возможно, у них получилось бы. Но мы тут, в большынстве своём, не очень опытны в таких взаимодействиях.

Владислав Караван
screenshot беру блин, обычный калькулятор на телефоне. И полу...

Нужно либо округлить результат как вам уже показали либо задать требуемый масштаб точности вычислений. https://dbfiddle.uk/?rdbms=postgres_14&fiddle=1bd2f0d01e947e775954e9a2b65ec6bf

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта