Re: rounding problems - Mailing list pgsql-general

From Justin
Subject Re: rounding problems
Date
Msg-id 4829B428.8000408@emproshunts.com
Whole thread Raw
In response to Re: rounding problems  (Tomasz Ostrowski <tometzky@batory.org.pl>)
Responses Re: rounding problems
List pgsql-general
Tomasz Ostrowski wrote:
On 2008-05-12 20:49, Justin wrote:
 
We take (List Price * discount Percent) * Number of Pieces = net
price.   
This is wrong. You should do in Excel:
( price * amount ) * discount
As otherwise any small error in representation of price*discount would
be multiplied by usually high amount. 

Your saying in Excel,  Multiplication is not  Commutativity???  that sends shudders  down my back
I'd do this way to get it right:
round( round(price * amount, 2) * discount, 2)
This way every sum should match. There could be errors, but in pennies,
not dollars. These errors will be because Excel does not have a decimal
type. 
That makes sense you are keeping the precision the same through the calculation
It is a lost case to break Postgres so it will match Excel. Much easier
would be to correct Excel spreadsheet. And this is a right thing to do.

Regards
Tometzky 

pgsql-general by date:

Previous
From: David Wall
Date:
Subject: Re: pg_standby / WAL archive-restore through system restarts
Next
From: Alvaro Herrera
Date:
Subject: Re: pg_standby / WAL archive-restore through system restarts