Re: BUG #3991: pgsql function sum()

From: Zdenek Kotala <Zdenek(dot)Kotala(at)Sun(dot)COM>
To: Mirosław Marek <mirek(at)mascort(dot)com(dot)pl>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #3991: pgsql function sum()
Date: 2008-02-26 15:51:07
Message-ID: 47C4356B.10700@sun.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

I think it is main problem. Try

select sum(cast(33.08 as float) - cast(36.09 as float));

you get

sum
-------------------
-3.01000000000001

Better is to use numeric type if you don't have reason to use
float/double. See
http://www.postgresql.org/docs/8.3/static/datatype-numeric.html#DATATYPE-FLOAT

It describes your problem.

Zdenek

Mirosław Marek napsal(a):
> wv and wb are defined as double precision
>
> Mirek
>
> Zdenek Kotala pisze:
>> mirek napsal(a):
>>> The following bug has been logged online:
>>>
>>> Bug reference: 3991
>>> Logged by: mirek
>>> Email address: mirek(at)mascort(dot)com(dot)pl
>>> PostgreSQL version: 8.2.4
>>> Operating system: Linux fedora(for work) and windows(for development)
>>> Description: pgsql function sum()
>>> Details:
>>> I saw a very strange behavior when i used function SUM() in query (used
>>> inside pg function), query:
>>>
>>> select magazyn, ciag, numer, datawp, vat, sum(wnetto-wnettop) as wn,
>>> sum(wvat-wvatp) as wv, sum(wbrutto-wbruttop) as wb from vzk_pozycjezinfo
>>> where magazyn = $1 and ciag = $2 and numer = $3 and datawp = $4
>>> group by magazyn, ciag, numer, datawp, vat order by magazyn, ciag,
>>> numer, datawp, vat
>>> vzk_pozycjezinfo is view
>>>
>>> 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.
>>
>> How are wv and wb attribute defined? Are they number or flout/double?
>>
>>
>> Zdenek
>>
>>
>> __________ NOD32 Informacje 2903 (20080226) __________
>>
>> Wiadomosc zostala sprawdzona przez System Antywirusowy NOD32
>> http://www.nod32.com lub http://www.nod32.pl
>>
>>
>
>
>

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Eisentraut 2008-02-26 16:07:26 Re: BUG #3968: ssh tunnel instructions could use improvement
Previous Message Tom Lane 2008-02-26 15:45:08 Re: BUG #3991: pgsql function sum()