xsl-list
[Top] [All Lists]

Re: [xsl] Rounding errors in financial app transforms

2007-07-26 06:06:17
Hi Justin,

I've to pointers that I am thinking of, but I don't know if this is what you're after: Have you considered using xs:decimal? Just as an example:

xs:float(10.1) - xs:float(9.93) = 0.17000008
xs:double(10.1) - xs:double(9.93) = 0.16999999999999993
xs:decimal(10.1) - xs:decimal(9.93) = 0.17

Ok, this is just a simple example. Rounding errors can occur in a number of ways and I am not aware of your application and how that is normally done. But then, still, how about the added functionality for rounding in XSLT 2.0? Like: fn:round-half-to-even()?

Cheers,
-- Abel Braaksma



Justin Johansson wrote:
What's the recommended recipe to avoid rounding-error discrepancies
in financial applications based upon XSLT (2.0) transforms?

Having demonstrated a proof-of-concept for an application based on XSLT 2.0
to a commercial finance/accounting industry client (to replace a legacy system
which happens to be written in CBASIC-86), a stumbling block / annoyance is
the
accumulation of one cent errors in the aggregated results.

This, of course, is as a result of using floating-point arithmetic in XSLT.

BCD arithmetic is apparently still used in mainframe applications, as was in
CBASIC-86, but most latter-day languages including XSLT seem to have
ignored it.

Does this means that one needs to resort to doing non-trivial financial
apps in XSLT
in integer arithmetic?

My guess is that even having a standard MulDiv function in XSLT would help
matters floating-point-wise but sadly there is no such animal available.

Thanks to all for suggestions.

Justin Johansson

*** A horse with no name is called Lambda ***

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