This problem occurs because 2.4 and 0.2 cannot be represented precisely
as IEEE floating point numbers, so you get rounding errors. The solution
is to display the result using format-number, which rounds it to the
required precision, for example
format-number(2.4 - 0.2, "#0.00")
will display the result to two decimal places.
Michael Kay
-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Nicolas Stern
Sent: 13 August 2003 10:09
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] basic math functions: problem with
substraction result (newbie question)
Hi - many thanks in advance for any help on the following problem:
Can anyone explain me the following behavior with basic math
functions ?
I'm doing additions and substractions in an xsl sheet, and
don't get the
expected results.
my xml file: (dummy.xml)
-------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="t2.xslt"?>
<ROWSET>
<ROW>dummy</ROW>
</ROWSET>
-------------------------------
the stylesheet: (t2.xslt)
-------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="var1" select="2.4" />
<xsl:variable name="var2" select="0.2" />
<xsl:template match="/">
<html>
<ul>
<li><xsl:value-of select="$var1 + $var2" /></li>
<li><xsl:value-of select="$var1 - $var2" /></li>
</ul>
<hr />
</html>
</xsl:template>
</xsl:stylesheet>
-------------------------------
the output: (using msxsl dummy.xml t2.xslt
-------------------------------
< h t m l >
< u l >
< l i > 2 . 6 < / l i >
< l i > 2 . 1 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 < / l i >
< / u l >
< h r >
< / h t m l >
-------------------------------
I would need the result of $var1 - $var2 to be = 2.2, as expected
The behavior is identical when using the parser in xmlspy.
Any hint ?
thanks in advance
Nicolas
_________________________________________________________________
MSN Search, le moteur de recherche qui pense comme vous !
http://search.fr.msn.ch
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list