XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Lee HumphriesSubject: 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.


Documentsumtestmsxml.xsl
Simple XSLT

DocumentCostSample.xml
Sample data

Postnext
Ivan PedruzziSubject: 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

Stylus (24 bit) 766.699951171875
Others 766.6999999999999

I guess our processor is doing the right thing :)

Ivan


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

Posttop
Lee HumphriesSubject: 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

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.