The following bug has been logged online: Bug reference: 4653 Logged by: Marco Vieira Email address: maovieira@gmail.com PostgreSQL version: 8.3.5 Operating system: x86_64-pc-linux-gnu (ubuntu 4.3.2-1ubuntu11 ) Description: zero with negative sign returned on round(sin) function Details: If I query select round(sin(2.0*pi()*0.51)) I get "-0" as return but zero is unsigned. but: select sin(2.0*pi()*0.51) returns: -0.0627905195293133 and select round(-0.0627905195293133) returns: 0 (no sign) I used cast to work around it: select round(sin(2.0*pi()*0.51))::int
"Marco Vieira" <maovieira@gmail.com> writes:
> If I query select round(sin(2.0*pi()*0.51)) I get "-0" as return but zero is
> unsigned.
In IEEE-standard float arithmetic, that isn't true --- zero and minus
zero are distinguishable values. This is not a bug but just the way
your platform chooses to define the result of rounding a small
negative value.
(Or at least, if you are convinced it's a bug, take it up with the
glibc authors not us.)
regards, tom lane
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера