[F&O] 17.8 Two definitions for decimal -> double

In section 17.8 there appears to be two definitions for decimal -> 
double:

"If ST is xs:float or xs:decimal, or types derived from them, then TV 
is xs:double(cast as xs:string( SV )) and the conversion is complete.

If ST is xs:decimal, or a type derived from xs:decimal, then TV is SV 
converted to a xs:double value and the conversion is complete."

Which is correct? (and could the other please be removed for 
clarification) Also, why would float need to be first cast to a string 
when double represents a superset of its values (both for the actual 
value as well as mantissa and exponent)?

Received on Tuesday, 7 October 2003 18:27:36 UTC