round() behavior

Почему когда берём round() от одного и того числа, можем получить разный выход ? Тип от которого берём - double precision. У меня запрос типа
select round (number1), round(number2) from (query) возвращает разный результат ;) (number1=number2 =838995.5 ну не суть ).

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

С ходу: значит, не то вы

С ходу: значит, не то вы округляете.
SELECT 838995.499999999999999999999999999999999999999999999::double precision,
ROUND(838995.499999999999999999999999999999999999999999999),
ROUND(838995.5::double precision)
Получаем:
838995.5 и 838994, 838996

Смотрите внимательнее, что вы округляете.

Может быть ... Но я делаю

Может быть ... Но я делаю Select number1 , number2, round(number1),round(number2) from (select SUM(col1) as number1, select SUM(col2) as number2 from (query)) b получаю 838995.5, 838995.5, 838995,838996 :P Может дело в какой то особенности неявной конвертации типов?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023