Re: BUG #3991: pgsql function sum()
| От | Tom Lane |
|---|---|
| Тема | Re: BUG #3991: pgsql function sum() |
| Дата | |
| Msg-id | 2945.1204040708@sss.pgh.pa.us обсуждение |
| Ответ на | BUG #3991: pgsql function sum() ("mirek" <mirek@mascort.com.pl>) |
| Список | pgsql-bugs |
"mirek" <mirek@mascort.com.pl> writes:
> problem is in: sum(wvat-wvatp) where field in view wvat = 33.08 and wvatp =
> 36.09
> Result is -3.01000000000001
> If I ask postgres manualy: select sum(33.08 - 36.09)
> result is ok -3.01
> Now I fix it with round function but i think that is a bug.
You evidently haven't got much experience with working with
floating-point arithmetic.
regression=# select 33.08::numeric - 36.09::numeric;
?column?
----------
-3.01
(1 row)
regression=# select 33.08::float8 - 36.09::float8;
?column?
-------------------
-3.01000000000001
(1 row)
This is not a bug, it's an inherent consequence of the fact that these
decimal values are not exactly represented in a binary floating-point
system. If you don't like it, don't use float.
regards, tom lane
В списке pgsql-bugs по дате отправления: