Subject: Re: [xsl] XPath 1.0: sum() and precision From: Andrew Welch <andrew.j.welch@xxxxxxxxx> Date: Thu, 27 Sep 2012 19:08:37 +0100 |
On 27 September 2012 18:32, Florent Georges <lists@xxxxxxxxxxxx> wrote: > Hi, > > I have a question about sum() and precision in XPath 1.0. > Let's say I have the following XML document: > > <numbers> > <num>75</num> > <num>356.98</num> > <num>2052.51</num> > </numbers> > > The expression "sum(/numbers/num)" returns something like > 2484.490000000000000002 (and not 2484.49) because numbers are > turned into xs:double instead of xs:decimal, and some precision > is lost during floating-point computation. In XPath 2.0, it's > easy, I can just use instead "sum(/numbers/num/xs:decimal(.))", > but this is not XPath 1.0. > > What can I use in XPath 1.0 (so only XPath, and only 1.0) in > order to get 2484.49? I guess if you are stuck with xpath 1.0 it would have to be substring... (or split on the ., then round() on the first 3 digits eg the 490) -- Andrew Welch http://andrewjwelch.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath 1.0: sum() and prec, Ihe Onwuka | Thread | Re: [xsl] XPath 1.0: sum() and prec, Florent Georges |
Re: [xsl] XPath 1.0: sum() and prec, Ihe Onwuka | Date | Re: [xsl] fo:multi-switch or altern, Jesper Tverskov |
Month |