Re: [xsl] Rounding errors in financial app transforms

Subject: Re: [xsl] Rounding errors in financial app transforms
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Thu, 26 Jul 2007 06:45:30 -0700
BTW. Actually I asked you about BCD in an off-list message but you didn't say
anything about it then.

This is what you get when talking about too many things in the same message,


Rule 1: Split different topics in different messages if you want that
they all receive (equal) attention.

As for performing numerical processing with XSLT, FXSL has done it
since at least 5 years ago: exponential and logarithmic functions,
trigonometric and hyper-trigonometric functions, finding the root of
any continuous function on R, numerical differentiation, numerical
integration ..., etc...

And nobody has complained about precision -- seems as if Pi with 13
correct digits after the decimal point is OK.

But, of course, financial calculations have other kind of users...

Probably I should think about implementing some symbolic evaluation --
then nobody can raise rounding problems.


-- 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, Justin Johansson <procode@xxxxxxxxxx> wrote:
Hi Michael & Dimitre,

Dimitre:
>You seem to be un-aware of xs:decimal.

Correct, and was just considering further after posting, that my original apps
were developed with XSLT 1.0 and perhaps I just got into the mode of thinking
that the problem still remained without considering the introduction of
xs:decimal
in 2.0.

BTW. Actually I asked you about BCD in an off-list message but you didn't say
anything about it then.


Michael: >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(.))

Great, that has to be another big plus for a schema-aware processor.  It opens
up new application domains for XSLT.

I know that I'm pushing the application of XSLT probably way beyond the
initial design domain(s) for the language, but it really is the next best
thing
to sliced bread, so that's why I've been attempting to use it real anger.

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

Naturally.


Anyway, all, since I've inadvertently overlooked xs:decimal, no doubt others have also and so this has to be another selling point for XSLT (2.0), even if not schema-aware by use of Michael's sum() solution.

Thanks to you both. Time for a re-read of the spec :-)

Justin Johansson

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

Current Thread