Re: [xsl] Bug in format-number ? Unexpected rounding

Subject: Re: [xsl] Bug in format-number ? Unexpected rounding
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 02 Sep 2010 17:08:16 -0400
At 2010-09-02 22:46 +0200, David Guerrero wrote:
We are having a strange behaviour in XSLT having some weird rounding of integer values when displaying them through "format-number()" function. I happens with serveral numbers and with different numbers of decimals.

Is this the expected behaviour ?

You are experiencing explainable behaviour because of the binary representation of decimal numbers. When looking at powers of two, they don't always hit decimal numbers bang on.


We are using recent versions of libxmls2 (2.7.4) and libxslt (1.1.26), and PHP (5.3.3). Anyhow the results are the same with xsltproc.

My recollection is that xsltproc supports only XSLT 1.0.


When using XSLT 2.0 one uses the xsd:decimal() cast of values so that the internal representation isn't binary and this problem goes away.

I hope this helps.

. . . . . . . . . . . Ken


-- XSLT/XQuery training: after http://XMLPrague.cz 2011-03-28/04-01 Vote for your XML training: http://www.CraneSoftwrights.com/s/i/ Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal

Current Thread