Re: strange sum behaviour

Поиск
Список
Период
Сортировка
От Seneca Cunningham
Тема Re: strange sum behaviour
Дата
Msg-id FFDED977-A4DF-4B2B-B210-D1E577F11B87@gmail.com
обсуждение исходный текст
Ответ на strange sum behaviour  ("Andrew Baerg" <andrew.baerg@gmail.com>)
Ответы Re: strange sum behaviour
Список pgsql-general
On 29-Aug-2006, at 13:13 :48, Andrew Baerg wrote:

> Hi,
>
> I am getting strange results from the sum function as follows:
>
> corp=# select amount from acc_trans where trans_id=19721 and
> chart_id=10019;
> amount
> ---------
>    4.88
>   117.1
> -121.98
> (3 rows)
>
> corp=# select sum(amount) from acc_trans where trans_id=19721 and
> chart_id=10019;
>         sum
> ----------------------
> -1.4210854715202e-14
> (1 row)
>
>
> amount is defined as double precision. I noticed that if I cast amount
> as numeric, the sum comes out 0 as expected.
>

Don't use floats or doubles for financial data, use numeric types.
Your double sum looks to be a normal error for floats in that situation.

Take a look at <http://www2.hursley.ibm.com/decimal/decifaq.html> for
some information about why you should be using numeric for your
amount column.

--
Seneca Cunningham
tentra@gmail.com




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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: strange sum behaviour
Следующее
От: garry saddington
Дата:
Сообщение: counting days