xsl-list
[Top] [All Lists]

msxml sum() and precision problem

2002-09-19 05:02:43
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