This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Calculating a sum of rounded numbers


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]