xsl-list
[Top] [All Lists]

Re: XSLT 2.0 Decimal number silliness

2004-03-25 11:09:29
Michael Kay wrote:
If there's a better way of specifying it, then I'd be interested in your
suggestions.

The spec leaves it implementation-defined.

I know.  I think that's a mistake, especially since numeric constants that used 
to be doubles (e.g., 1.5) are now decimal by default.


Saxon produces a result with 18+N+M digits where N and M are the number of
digits in the operands. I'd be very happy to implement a better rule if I
could think of one.

Two possibilities.  One is to allow some way to specify default number of 
fraction digits in the absence of a schema.  Another is to implement a fixed 
precision and document it.  I have chosen to implement 18 integer digits plus 
18 fraction digits.  I believe this is legitimate according to the spec (tell 
me if I'm wrong), and it's a whole lot easier to explain to users.  Plus, you 
get exactly the same answers no matter how you calculate two-thirds in my 
examples below.

--jeff


# -----Original Message-----
# From: Jeff Kenton [mailto:jkenton(_at_)datapower(_dot_)com] # Sent: 25 March 2004 16:53
# To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
# Subject: [xsl] XSLT 2.0 Decimal number silliness
# # # I've been looking at XSLT 2.0 decimal numbers (again), and I # still think the WC needs to do better. # # Consider the following stylesheet: # # <?xml version="1.0" encoding="utf-8"?> # <xsl:stylesheet # xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="2.0" > # # <xsl:template match="/">~
# <xsl:value-of select="2.0 div 3.0" />~
# <xsl:value-of select="0.444 div 0.666" />~ </xsl:template>
# # </xsl:stylesheet> # # Using Saxon 7.x, this results in: # # <?xml version="1.0" encoding="UTF-8"?>~
# 0.666666666666666667~
# 0.666666666666666666666667~
# # Both lines of output should be equal. There's got to be # something better. At least allow specification of number of # fraction digits. # # --jeff # # # --+------------------------------------------------------------------
# XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
# You are subscribed as: mhk(_at_)mhk(_dot_)me(_dot_)uk
# To unsubscribe, go to: # http://lists.mulberrytech.com/unsub.php/xsl-list/mhk(_at_)mhk(_dot_)me(_dot_)uk # or e-mail: # <mailto:xsl-list-unsubscribe-mhk=mhk(_dot_)me(_dot_)uk(_at_)lists(_dot_)mulberrytech(_dot_)com>
# --+--
# #

--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
You are subscribed as: jkenton(_at_)datapower(_dot_)com
To unsubscribe, go to: 
http://lists.mulberrytech.com/unsub.php/xsl-list/jkenton(_at_)datapower(_dot_)com
or e-mail: 
<mailto:xsl-list-unsubscribe-jkenton=datapower(_dot_)com(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--