Mid-Atlantic Developer Conference - Call for Speakers

NumberFormatter::parse

numfmt_parse

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

NumberFormatter::parse -- numfmt_parseBir sayı dizgesini sayıya dönüştürür

Açıklama

Nesne yönelimli kullanım

mixed NumberFormatter::parse ( string $değer [, int $tür [, int &$konum ]] )

Yordamsal kullanım

mixed numfmt_parse ( NumberFormatter $biçemleyici , string $değer [, int $tür [, int &$konum ]] )

Geçerli biçemleyici kurallarına uygun olarak bir dizgeyi bir sayıya çevirir.

Değiştirgeler

fmt

NumberFormatter nesnesi.

tür

Kullanılacak biçemleme türü. Öntanımlı olarak, NumberFormatter::TYPE_DOUBLE kullanılır.

konum

Çözümlemenin başlatılacağı dizge konumu. İşlev döndüğünde bu değiştirge çözümlemenin bittiği konumu gösterir.

Dönen Değerler

Bir hata oluşursa FALSE, aksi takdirde dönüştürülen sayı değeri döner.

Örnekler

Örnek 1 - numfmt_parse() örneği

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

Örnek 2 - Nesne yönelimli kullanım örneği

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

Yukarıdaki örneğin çıktısı:

1234567.891
1234567

Ayrıca Bakınız

add a note add a note

User Contributed Notes 2 notes

up
3
rdohms at php dot net
5 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
-1
helium73b at gmail dot com
11 months ago
to parse English use this format: 'en_EN' .  I had to guess.  I have no idea where you would find these codes.

<?php
echo "<pre>";
$fmt = numfmt_create( 'en_EN', NumberFormatter::DECIMAL );
$num = "1,234,567.891";
echo
numfmt_parse($fmt, $num)."\n";
echo
numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
echo
"</pre>";
?>

If this doesn't work well all I can say is it shouldn't work because it makes no sense that  you would repeat the code twice "en and EN" in one code.  Stuff that makes no sense is hard to guess.   I couldn't find a page that has these codes either.  I guess documentation is bound to be incomplete since it's so voluminous.  Documentation has a language and syntax unto itself yet there are no tutorials on understanding documentation.
To Top