.. _number:
======
number
======
Converte um valor ou um nó em número
Descrição
~~~~~~~~~
A função fn:number constrói um valor xs:double a partir de um nó que contém um
número ou de um valor atômico. É útil para dizer ao processador que trate um nó
ou um valor como número, seja qual for o tipo declarado dele (se houver).
Devolve o argumento convertido em xs:double.
A diferença entre fn:number e o construtor xs:double é que fn:number devolve NaN
quando o argumento não pode ser convertido em número, enquanto o construtor
xs:double dá erro.
.. list-table::
:widths: 40 60
:header-rows: 1
* - **Parâmetros**
- **Descrição**
* - arg:integer()
- o valor a converter em número; se omitido, o item de contexto
Exemplos
~~~~~~~~
Os exemplos abaixo usam este documento de entrada:
.. code-block:: xml
29.99
10.00
69.99
39.99
3.99
.. list-table::
:widths: 25 25 50
:header-rows: 1
* - **XPath**
- **Resultado**
- **Explicação**
* - number($priceDoc//prod[1]/price)
- 29.99
- O texto do elemento price é convertido em número.
* - number($priceDoc//prod/price)
- Error XPTY0004
- number() aceita um único item, e há três elementos price.
* - number($priceDoc//prod[1]/@currency)
- NaN
- USD não é um número.
* - number('29,99')
- NaN
- A vírgula não é separador decimal, então a string não é um número.
* - number('ABC')
- NaN
- ABC não é um número.
* - number( () )
- NaN
- A sequência vazia vira NaN.
* - $priceDoc//prod/price[number() > 35]
- 69.99 39.99
- Sem argumento, number() converte o item de contexto: os preços maiores que 35.
Veja também
~~~~~~~~~~~
.. toctree::
:titlesonly:
:glob:
* :ref:`functx_is-a-number`.