PHP 8.5.0 Alpha 1 available for testing

NumberFormatter::parse

numfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parseAnaliza un número

Descripción

Estilo orientado a objetos

public NumberFormatter::parse(string $string, int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null): int|float|false

Estilo procedimental

numfmt_parse(
    NumberFormatter $formatter,
    string $string,
    int $type = NumberFormatter::TYPE_DOUBLE,
    int &$offset = null
): int|float|false

Analiza una cadena y extrae un número, utilizando las reglas del formateador.

Parámetros

formatter

El objeto NumberFormatter.

string

La cadena a analizar para el número.

type

El tipo de formato a utilizar. Por omisión, NumberFormatter::TYPE_DOUBLE es utilizada. Tenga en cuenta que NumberFormatter::TYPE_CURRENCY no es soportado; utilice NumberFormatter::parseCurrency() en su lugar.

offset

La posición de inicio de análisis en la cadena. En retorno, este valor contendrá la posición de fin de análisis.

Valores devueltos

El valor numérico analizado, o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo con numfmt_parse(), Estilo procedimental

<?php
$fmt
= numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo
numfmt_parse($fmt, $num)."\n";
echo
numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
?>

Ejemplo #2 Ejemplo con numfmt_parse(), estilo POO

<?php
$fmt
= new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo
$fmt->parse($num)."\n";
echo
$fmt->parse($num, NumberFormatter::TYPE_INT32)."\n";
?>

El ejemplo anterior mostrará :

1234567.891
1234567

Ver también

add a note

User Contributed Notes 2 notes

up
5
rdohms at php dot net
13 years ago
It interesting to note that the expected behavior for this function may change according to your ICU version.

In ICU 4.4.2 (standard for Ubuntu 10.* with PHP 5.3.5)

With locale 'en', input of 100,1 returns 1001

In ICU 4.8.1 (standard for Ubuntu 12.* with PHP 5.3.10)

With locale 'en', input of 100,1 returns "false"

Be sure to note your ICU version in phpinfo() to be sure you will get the expected output.
up
4
Rakasch
6 years ago
'en_EN':

basically the first part is the language and the second part the region:
'en_EN' - english, England
'en_US' - english, United States

You can lookup the language tags like 'en_EN' here:
https://datahub.io/core/language-codes
see "ietf-language-tags"
To Top