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