[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Rounding errors in financial app transforms


Subject: RE: [xsl] Rounding errors in financial app transforms
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 26 Jul 2007 13:56:09 +0100

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

Use xs:decimal arithmetic.

If you use a schema-aware transformation, with a schema that defines the
relevant input fields as xs:decimal, then this will tend to happen
automatically. If you use a non-schema-aware transformation, or if the input
contains data that isn't validated or isn't validated as xs:decimal, then
you can achieve the same effect "by hand", for example by writing
sum(product/sales-value/xs:decimal(.))

Be aware that there can be a performance hit in using xs:decimal compared to
xs:double, it shouldn't be done unless you actually need it.

Michael Kay
http://www.saxonica.com/


Current Thread
Keywords