RE: [xsl] msxml sum() and precision problem

Subject: RE: [xsl] msxml sum() and precision problem
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Thu, 19 Sep 2002 15:42:25 +0100
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@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Jonas Nordström
> Sent: 19 September 2002 13:03
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> 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


Current Thread