This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Calculating a sum of rounded numbers
- From: "Nik Krimm" <Nik dot Krimm at emacdigital dot com>
- To: "xsl-mulberry" <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 9 May 2002 15:45:22 -0500
- Subject: [xsl] Calculating a sum of rounded numbers
- Reply-to: xsl-list at lists dot mulberrytech dot com
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