numfmt_format

funkcja

Formatuje liczbę całkowitą lub zmiennoprzecinkową do ciągu znaków zgodnie z ustawieniami lokalnymi obiektu NumberFormatter. Wymaga intl.

numfmt_format(NumberFormatter $formatter, int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

numfmt_format zamienia liczbę na sformatowany ciąg znaków korzystając z reguł lokalizacji zapisanych w NumberFormatter. Zwraca false przy błędzie.

Opcjonalny parametr $type pozwala wymusić interpretację wartości:

| Stała | Opis | |---|---| | NumberFormatter::TYPE_DEFAULT | typ domyślny z formatera | | NumberFormatter::TYPE_INT32 | 32-bitowa liczba całkowita | | NumberFormatter::TYPE_INT64 | 64-bitowa liczba całkowita | | NumberFormatter::TYPE_DOUBLE | zmiennoprzecinkowa |

Funkcja wymaga rozszerzenia intl. Do formatowania walutowego używaj numfmt_format_currency.

<?php
declare(strict_types=1);

$f = numfmt_create('pl_PL', NumberFormatter::DECIMAL);

echo numfmt_format($f, 1234.5);   // 1 234,5  (separator tysięcy to U+00A0 — twarda spacja, nie zwykła ' ')
echo numfmt_format($f, 0.5);      // 0,5
echo numfmt_format($f, 1000000);  // 1 000 000

// Wymuszenie typu całkowitego (obcina część dziesiętną)
echo numfmt_format($f, 1234.9, NumberFormatter::TYPE_INT32); // 1 234

// Angielski formatter — inne konwencje
$en = numfmt_create('en_US', NumberFormatter::DECIMAL);
echo numfmt_format($en, 1234.5); // 1,234.5