.. _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`.