K{}DAMAN

Etiketler


Son Yazılar


Sayıları biçimlendirmek

Melih KocatürkMelih Kocatürk

Problem: Bir sayınız var ve binlik ve ondalık ayraçlar ile yazdırmanız gerekiyor. Örneğin, sayfayı görüntüleyenlerin sayısını veya anketteki bir seçeneğe oy verenlerin yüzdesini görüntülemek istiyorsunuz.

Çözüm: Her zaman ondalık nokta olarak belirli karakterlere ve binlik ayracına ihtiyacınız varsa, number_format() fonksiyonunu kullanın:

$number = 1234.56;

// $formatted1 is "1,235" - 1234.56 gets rounded up and , is
// the thousands separator");
$formatted1 = number_format($number);

// Second argument specifies number of decimal places to use.
// $formatted2 is 1,234.56
$formatted2 = number_format($number, 2);

// Third argument specifies decimal point character
// Fourth argument specifies thousands separator
// $formatted3 is 1.234,56
$formatted3 = number_format($number, 2, ",", ".");

Belirli bir yerel ayar için uygun biçimler oluşturmanız gerekirse, NumberFormatter kullanın:

$number = '1234.56';

// $formatted1 is 1,234.56
$usa = new NumberFormatter("en-US", NumberFormatter::DEFAULT_STYLE);
$formatted1 = $usa->format($number);

// $formatted2 is 1 234,56
// Note that it's a "non breaking space (\u00A0) between the 1 and the 2
$france = new NumberFormatter("fr-FR", NumberFormatter::DEFAULT_STYLE);
$formatted2 = $france->format($number);

number_format() işlevi, bir sayıyı ondalık ve binlik ayraç ile biçimlendirir. Varsayılan olarak, sayıyı en yakın tam sayıya yuvarlar. Sayının tamamını korumak istiyorsanız, ancak sayınızdaki ondalık basamağın uzunluğunu önceden bilemiyorsanız, şunu kullanın:

$number = 31415.92653; // your number
list($int, $dec) = explode('.', $number);
// $formatted is 31,415.92653
$formatted = number_format($number, strlen($dec));

Intl uzantısının bir parçası olan NumberFormatter sınıfı, ICU kütüphanesinin geniş formatlama kurallarını kullanır. Hatta bir kelimeyi hecelemek gibi süslü şeyler bile yapabilirsiniz:

$number = '1234.56';

$france = new NumberFormatter("fr-FR", NumberFormatter::SPELLOUT);
// $formatted is "mille-deux-cent-trente-quatre virgule cinq six"
$formatted = $france->format($number);

İşini seven bir yazılımcı ve bilişim okur-yazarı olarak, kendimi nasıl geliştirebilirim sorusuna cevap arıyor...

Comments 0
There are currently no comments.