xsl-list
[Top] [All Lists]

Re: [xsl] Rounding errors in financial app transforms

2007-07-26 14:25:45
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
      round-half-to-even($arg as numeric?, $precision as xs:integer)
as numeric?
is supposed to do?

  http://www.w3.org/TR/xpath-functions/#func-round-half-to-even




--
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





On 7/26/07, W Charlton <XSLList(_at_)ymonda(_dot_)net> wrote:
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 n-1. 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


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--