[xsl] msxml sum() and precision problem

Subject: [xsl] msxml sum() and precision problem
From: Jonas Nordström <jonas.nordstrom@xxxxxxxxxxxxxxxx>
Date: Thu, 19 Sep 2002 14:02:43 +0200
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


Current Thread