xsl-list
[Top] [All Lists]

[xsl] round-half-to-even problem.

2011-01-24 08:40:10
Hi, 

I'm using saxon 9 EE and xslt 2.0.
I want to round but I'm getting weird outputs.

My Template looks like this:

<xsl:template match="data">
                <absatz>
                        <xsl:choose>
                                <xsl:when test="@type='Number' and
string-length(substring-after(., '.')) &gt; 2">
                                        <xsl:value-of
select="round-half-to-even(text(), 2)"/>
                                </xsl:when>
                                <xsl:otherwise>
                                        <xsl:apply-templates/>
                                </xsl:otherwise>
                        </xsl:choose>
                </absatz>
</xsl:template> 


Example:
<data type="Number">1351.845</data>

Output:
<absatz>1351.84</absatz>

Desired:
<absatz>1351.85</absatz>

Example:
<data type="Number">298.15499999999997</data>

Output:
<absatz>298.16</absatz> <- which is correct or at least what I want.

Can anybody explain this to why on time it takes the bigger and the next
time the smaller number ?!
Can I control that somehow ?!

kind regards 


. . . . . . . . . . . . . . . . . . . . . . . . . .
Patrick Szabo
 XSLT-Entwickler 
LexisNexis
Marxergasse 25, 1030 Wien

mailto:patrick(_dot_)szabo(_at_)lexisnexis(_dot_)at
Tel.: +43 (1) 534 52 - 1573 
Fax: +43 (1) 534 52 - 146 






--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>