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