This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: msxml sum() and precision problem


XPath 1.0 uses floating-point binary arithmetic, not decimal arithmetic,
so there will be rounding errors when results are converted to decimal.
Use format-number() to display the results to the required precision.

Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com 

> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com 
> [mailto:owner-xsl-list@lists.mulberrytech.com] On Behalf Of 
> Jonas Nordström
> Sent: 19 September 2002 13:03
> To: 'xsl-list@lists.mulberrytech.com'
> Subject: [xsl] msxml sum() and precision problem
> 
> 
> Something strange is going on. I strolled through the 
> archives but couldn't find something similar. Consider the following:
> 
> test.xml:
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <?xml-stylesheet type="text/xsl" href="test.xsl"?>
> 
> <jonas>
> 	<name amount="349.03"/>
> 	<name amount="895.01"/>
> 	<name amount="841.03"/>
> </jonas>
> 
> 
> test.xsl:
> <?xml version="1.0" encoding="ISO-8859-1"?>
> 
> <xsl:stylesheet  version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> 
> <xsl:output method="html" version="4.0" encoding="ISO-8859-1"/>
> 
> <xsl:template match="/">
> 
> <html>
>   <meta http-equiv="Content-Type" content="text/html; 
> charset=ISO-8859-1" /> <head> </head> <body> 
> <xsl:apply-templates select="/jonas/name" /> <br/>
> Sum: <xsl:value-of select="sum(/jonas/name/@amount)" />
> </body>
> </html>
> </xsl:template>
> 
> <xsl:template match="/jonas/name">
>    <xsl:value-of select="position()"/>: <xsl:value-of 
> select="@amount" /><br/> </xsl:template>
> 
> </xsl:stylesheet>
> 
> and the stunning browser-result:
> 1: 349.03
> 2: 895.01
> 3: 841.03
> 
> Sum: 2085.0699999999997 
> 
> Is there a known precision bug for sum in MSXML (I'm running 
> MSXML3 i think).
> 
>  - Jonas Nordstrom -
> Sigma Exallon AB
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]