[xsl] format-number in XSLT 1.0

Subject: [xsl] format-number in XSLT 1.0
From: Jack Matheson <jack@xxxxxxxxxxxxxx>
Date: Tue, 25 Jan 2005 11:13:31 -0600
I created a small example stylesheet to see how positive and negative format patterns are used, but something doesn't make sense to me.

Given the following stylesheet:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="text"/>
<xsl:template match="/">
pos: <xsl:value-of select="format-number(31415, '##,##.0;0000')"/>
neg: <xsl:value-of select="format-number(-31415, '##,##.0;0000')"/>
</xsl:template>
</xsl:stylesheet>


Xalan (bundled with my Java distribution) produces:
    pos: 3,14,15.0
    neg: -3,14,15.0

Saxon (8.2) produces
    pos: 3,14,15.0
    neg: 31415

Can anyone tell me which is correct? In Kay's XSLT 1.0 reference, I found this:

"If there is an explicit negative subpattern, it serves only to specify the negative prefix and suffix; the number of digits, minimal digits, and other characteristics are all the same as the positive pattern."

Doesn't this mean that the negative pattern should be identical to the positive pattern with a "-" prefix?

Any clarification is greatly appreciated =)

Current Thread