[F&O] XSCH-FO-005 Casting xs:double and xs:float to xs:string

Dear Colleagues,

This comment pertains to the 25 December 2003 internal WD of XQuery 1.0
and XPath 2.0 Functions and Operators, as provided to our WG [1].

[1] 
http://lists.w3.org/Archives/Member/w3c-xml-schema-wg/2004Feb/0000.html

Xan Gregg, on behalf of the XML Schema Working Group
----------------------------------------------------

XSCH-FO-005 Casting xs:double and xs:float to xs:string (17.7)

We note that F&O does not use the XML Schema canonical
representations of xs:decimal, xs:float, and xs:double.  We
know that XML Schema is under-specified in this area, and we are
working to improve our specification in either errata fixes or a
future version (see our RQ-1,
http://www.w3.org/XML/Group/2002/07/xmlschema-1.1-current-reqs-
list.html#canonical-float).

We suggest that we coordinate efforts to find a mutually
satisfactory resolution.

That aside, we suspect the written descriptions do not have their
intended effect.

       If SV has an absolute value that is greater than or equal to
       0.000001 (one millionth) and less than 1000000 (one million),
       then the value is converted to an xs:decimal and the resulting
       xs:decimal is converted to an xs:string  using the rules above.

The casting to decimal rules imply that casting xs:float("1.1") to
xs:decimal yields 1.10000002384185791015625 which is the exact value of
the float that represents "1.1" (and therefore it is the "numerically
closest" value).  Does this mean casting xs:float("1.1") to string
yields "1.10000002384185791015625"?

Received on Sunday, 15 February 2004 10:20:18 UTC