R: Rounding problems

From: "Paolo Saudin" <paolo(at)ecometer(dot)it>
To: "'Tom Lane'" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: R: Rounding problems
Date: 2009-05-03 15:33:56
Message-ID: 004401c9cc04$945a9670$bd0fc350$@it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

>>"Paolo Saudin" <paolo(at)ecometer(dot)it> writes:
>> I have a problem with a query wich simple aggregate values. In the sample
>> below I have two values, 1.3 and 1.4. Rounding their average with one
>> decimals, should give 1.4.
>
>You seem way overoptimistic about float4 values being exact. They are
>not. The actual computation being done here is more like
>
>regression=# select (1.3::real + 1.4::real) / 2 ;
> ?column?
>------------------
> 1.34999990463257
> (1 row)
>
>If you want an exact sum with no roundoff error you should be storing
>all your values as numeric (and taking the consequent speed and space
>hit :-().
>
> regards, tom lane
>

I converted all the fields in numeric type instead of real and now both
queries return the same result !
Now I need to test about performances ...

Thank you very much !!
Paolo Saudin

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Wojtek 2009-05-03 15:38:53 keeping track of function execution
Previous Message Paolo Saudin 2009-05-03 15:24:46 R: Rounding problems