Returns the value indicated by $arg
or, if $arg
is not
specified, the context item after atomization, converted to an xs:double
.
fn:number
( xs:double
fn:number
( $arg
as xs:anyAtomicType?
xs:double
Calling the zero-argument version of the function is defined to give the same result as
calling the single-argument version with the context item (.
). That is,
fn:number()
is equivalent to fn:number(.)
, as defined by
the rules that follow.
If $arg
is the empty sequence or if $arg
cannot be converted
to an xs:double
, the xs:double
value NaN
is
returned.
Otherwise, $arg
is converted to an xs:double
following the
rules of . If the conversion to xs:double
fails, the xs:double
value NaN
is returned.
The expression fn:number($item1/quantity)
returns 5.0e0
.
The expression fn:number($item2/description)
returns xs:double('NaN')
.
Assume that the context item is the xs:string
value "15
".
Then fn:number()
returns 1.5e1
.
A dynamic error is raised
if $arg
is omitted and the context item is absent.
As a consequence of the rules given above, a type error occurs if the context item cannot be atomized, or if the result of atomizing the context item is a sequence containing more than one atomic value.
XSD 1.1 allows the string +INF
as a representation of positive infinity;
XSD 1.0 does not. It is implementation-defined whether XSD 1.1 is
supported.
Generally fn:number
returns NaN
rather than raising a dynamic
error if the argument cannot be converted to xs:double
. However, a type
error is raised in the usual way if the supplied argument cannot be atomized or if the
result of atomization does not match the required argument type.