Subject: Re: [xsl] Rounding errors in financial app transforms From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Thu, 26 Jul 2007 14:20:15 0700 
So if you try to round $100.105 to 2 decimal places you will get $100.11 whereas any financial system will (probably) expect $100.10.
If this IS the case you are going to have to force values at the tipping point to go down not up.
Isn't this exactly what roundhalftoeven($arg as numeric?, $precision as xs:integer) as numeric? is supposed to do?
 Cheers, Dimitre Novatchev  Truly great madness cannot be achieved without significant intelligence.  To invent, you need a good imagination and a pile of junk  You've achieved success in your field when you don't know whether what you're doing is work or play
Justin,
It may be relevant to be aware that rounding in financial transactions is not a simple mathematical problem, there is rounding and there is rounding.
Financial systems (at least all the ones we have dealt with) use have a specific way or rounding money known as "bankers rounding" or "half even rounding".
The problem value is the n.5. Most mathematics based system (and most humans) including both versions of XSLT round to n+1.
Bankers however round to n1. That way I presume they get to make more money!!
So if you try to round $100.105 to 2 decimal places you will get $100.11 whereas any financial system will (probably) expect $100.10.
If this IS the case you are going to have to force values at the tipping point to go down not up.
Does that shed some light on your problem?
William Charlton The yMonda team yMonda Limited w: www.ymonda.net
Current Thread 


< Previous  Index  Next > 

Re: [xsl] Rounding errors in financ, David Carlisle  Thread  Re: [xsl] Rounding errors in financ, Florent Georges 
Re: [xsl] Rounding errors in financ, David Carlisle  Date  Re: [xsl] Rounding errors in financ, Florent Georges 
Month 