[xsl] Calculating a sum of rounded numbers

Subject: [xsl] Calculating a sum of rounded numbers
From: "Nik Krimm" <Nik.Krimm@xxxxxxxxxxxxxxx>
Date: Thu, 9 May 2002 15:45:22 -0500
I am trying the following output from the XML below:

[output]
.21 
.09
.2 
sum: .5

[xml]
<values>
<value>.2123</value>
<value>.0923</value>
<value>.2012</value>
</values>

[xsl]
<xsl:for-each select="value">
	<xsl:value-of select="format-number((.),'.##')" /><br />
</xsl:for-each>
sum: <xsl:value-of select="format-number(sum(//value),'.##)" />

Instead I'm getting the output

[output]
.21 
.09
.2 
sum: .51

i.e. a rounding error because the numbers are sumed first and then rounded, rather than rounded first and then summed.


I tried
<xsl:value-of select="format-number(sum(format-number(//measure),'##')" />

But get an error: 
Argument 1 must return a node-set.
format-number(-->sum(format-number(//measure),'##')<--)

Can anyone suggest a better way to approach this problem that is native xsl (i/e/ without extensions)?


TIA

nik




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


Current Thread