Subject:Bug in non-SS XSLT processors Author:Lee Humphries Date:15 Aug 2002 12:40 AM
The attached XSLT yields some unusual results when run against the attached XML.
For the SS XSLT processor you get
<Total>766.7</Total>
For Xalan-J, Saxon, MSXML3 and MSXML4:
<Total>766.6999999999999</Total>
and for MSXML.Net you get:
<Total>766.69999999999993</Total>
Obviously such behaviour is pretty undesirable.
Initially I thought it was the XPath sum function misbehaving. But I tried using a recursive template to accumulate the numbers and got the same result. Which to me implies that it's the xsl:value-of that's at fault.
Subject:RE: Bug in non-SS XSLT processors Author:Ivan Pedruzzi Date:15 Aug 2002 05:32 PM
Lee,
I did some experiments and I suspect that the other processors tune
floating point operations to use less the 53 bit (53 bit is the default
on Ix86 platform) to improve performance. Our built-in processor doesn't
do that.
I was able to generate a similar result reducing the precision to 24 bit
> -----Original Message-----
> From: stylus-studio-tech Listmanager [mailto:listmanager]
> Sent: Thursday, August 15, 2002 12:54 AM
> To: Recipients of 'stylus-studio-tech' suppressed
> Subject: Bug in non-SS XSLT processors
>
>
> From: "Lee Humphries"
>
> The attached XSLT yields some unusual results when run
> against the attached XML. For the SS XSLT processor you get
> <Total>766.7</Total> For Xalan-J, Saxon, MSXML3 and
> MSXML4: <Total>766.6999999999999</Total>
> and for MSXML.Net you get: <Total>766.69999999999993</Total>
>
> Obviously such behaviour is pretty undesirable.
> Initially I thought it was the XPath sum function
> misbehaving. But I tried using a recursive template to
> accumulate the numbers and got the same result. Which to me
> implies that it's the xsl:value-of that's at fault.
>
>
>
> To reply: mailto:stylus-studio-tech.5455@edn.exln.com
> To start a new topic: mailto:stylus-studio-tech@edn.exln.com
> To login: http://edn.exln.com/~SSDN
>
>
Subject:Bug in non-SS XSLT processors Author:Lee Humphries Date:15 Aug 2002 08:35 PM
I've now tried using format-number and the results get better and weirder at the same time.
If I use "format-number(sum(Costs/ExpenseAmount), '0.##########')"
I get:
<Total>766.7</Total>
for SS, Xalan-J, Saxon, MSXML.Net, MSXML3 and MSXML 4
But if I change the format string to
'0.#############' (13 #'s) then I get:
<Total>766.6999999999999</Total>
for everything except MSXML.Net