xsl-list
[Top] [All Lists]

RE: [xsl] Unexpected Results with format-number()

2007-08-19 06:09:43
A fix for this problem has been produced and is in the Saxon Subversion
repository on SourceForge. As previously reported, the problem arose as a
side-effect of a patch released in Saxon 8.9.0.4.

Michael Kay
http://www.saxonica.com/


-----Original Message-----
From: Angela Williams 
[mailto:Angela(_dot_)Williams(_at_)the401kcompany(_dot_)com] 
Sent: 16 August 2007 00:20
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Unexpected Results with format-number()

I've just noticed a difference in the way small numbers are 
formatting.
When I wrote this a few weeks ago, small numbers formatted 
with the correct precision.  Now it seems the format string 
is being ignored.

I believe I was using Saxon 8.8 when I first wrote the code. 
I updated to Saxon 8.9.0.4 yesterday, but that may just be a 
coincidence.

What am I missing?

Sample XML:
<?xml version="1.0" encoding="UTF-8"?>
<values>
   <amt>-0.003000</amt>
   <amt>-0.001500</amt>
   <amt>0.003000</amt>
   <amt>0.00</amt>
   <amt>0</amt>
</values>

Expected output:
amt: [-0.003]  formatted-value: [-$0.00]
amt: [-0.0015] formatted-value: [-$0.00] 
amt: [0.003]   formatted-value: [$0.00] 
amt: [0]       formatted-value: [$0.00] 
amt: [0]       formatted-value: [$0.00] 

Actual output:
amt: [-0.003]  formatted-value: [-$0]
amt: [-0.0015] formatted-value: [-$0] 
amt: [0.003]   formatted-value: [$0] 
amt: [0]       formatted-value: [$0] 
amt: [0]       formatted-value: [$0] 

Stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
  xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
  xmlns:fk="http://www.the401kcompany.com/functions"; 
  version="2.0">

  <xsl:template match="/values">
    <html>
      <body>
        <xsl:apply-templates select="amt" />
      </body>
    </html>
  </xsl:template>

  <xsl:template match="amt">
    <p>
      <xsl:value-of select="fk:nbr-format(.)" />
    </p>
  </xsl:template>

  <xsl:function name="fk:nbr-format">
    <xsl:param name="amt" as="xs:double" />
    <xsl:variable name="picture" select="'$,.00'" />
      amt:              [<xsl:value-of select="$amt" />]  
      formatted-value:  [<xsl:value-of
select="format-number(number($amt), string($picture))" />]   
  </xsl:function>
</xsl:stylesheet>

Thanks!
Angela Williams
Software Developer
The 401k Company, A Charles Schwab Company
98 San Jacinto Blvd. ~ Suite 1100 ~ Austin, TX 78701
Office: 512.344.1547 ~ Fax: 512.397.6656
Angela(_dot_)Williams(_at_)The401kCompany(_dot_)com    
 


--~------------------------------------------------------------------
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>
--~--



--~------------------------------------------------------------------
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>
--~--