Re: round behavior differs between 8.1.5 and 8.3.7

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: round behavior differs between 8.1.5 and 8.3.7
Дата
Msg-id 9757.1240340417@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: round behavior differs between 8.1.5 and 8.3.7  (Robert Morton <morton2002@gmail.com>)
Ответы Re: round behavior differs between 8.1.5 and 8.3.7  (Robert Morton <morton2002@gmail.com>)
Список pgsql-general
Robert Morton <morton2002@gmail.com> writes:
> Perhaps there are platform differences, since the version I am using was
> built with Microsoft Visual Studio:

Ah, now you tell us.

round(float8) just calls the platform's rint() function.  At least on
platforms that have rint(), which maybe Windows doesn't.  In that case
it's going to come down to src/port/rint.c, which is not particularly
careful about the exactly-0.5 case.  I think fully-standards-conformant
versions of rint() are probably going to use a "round to nearest even
integer" rule in such cases.  But by and large, float8 arithmetic *is*
going to have platform-specific behaviors; you're living in a fantasy
world if you think otherwise.

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Robert Morton
Дата:
Сообщение: Re: round behavior differs between 8.1.5 and 8.3.7
Следующее
От: Steve Crawford
Дата:
Сообщение: Re: COPY 'invalid byte sequence for encoding "UTF8": 0xff'