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 по дате отправления: