David> For xs:decimal values the number of digits of precision
David> returned by the numeric operators is
David> .implementation-defined.. If the number of digits in the
David> result exceeds the number of digits that the implementation
David> supports, the result is truncated or rounded in an
David> .implementation-defined. manner.
Oh. Well that's a bad decision, as you no longer have the
neat divide between exact arithmetic (requested by xs:integer
or xs:decimal) and inexact arithmetic (requested by xs:double
and xs:float) that you get in XML Schema.
Dividing two integers can produce a result that is not expressible in a
finite number of decimal digits. The spec chose therefore to say that the
number of digits in the result of (10 div 3), say, is
implementation-defined. I don't know if that's the reason for the effect
being observed here, but I suspect so. In which case the statement in the
spec about the equivalence of xs:int(x div y) and (x idiv y) is clearly
incomplete.
Michael Kay
http://www.saxonica.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>
--~--