PHP.mk документација

number_format

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.number-format.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.number-format.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
number_format

Референца за `function.number-format.php` со подобрена типографија и навигација.

function.number-format.php

number_format

(PHP 4, PHP 5, PHP 7, PHP 8)

number_formatФорматирај број со групирани илјади

= NULL

number_format(
         float $num,
         int $decimals = 0,
         ?string $decimal_separator = ".",
         ?string $thousands_separator = ","
): string

Ги форматира броевите со групирани илјади и опционално децимални цифри користејќи го правилото за заокружување половина нагоре.

Параметри

num

Бројот што се форматира.

decimals

Поставува број на децимални цифри. Ако 0симболот, на пр. decimal_separator се изостави од вратената вредност. Од PHP 8.3.0, кога вредноста е негативна, num се заокружува на decimals значајни цифри пред децималната точка. Пред PHP 8.3.0, негативните вредности беа игнорирани и третирани исто како 0.

decimal_separator

Поставува сепаратор за децималната точка.

thousands_separator

Поставува сепаратор за илјади.

Вратени вредности

Форматирана верзија на num.

Дневник на промени

Верзија = NULL
8.3.0 Додадено ракување со негативни вредности за decimals.
8.0.0 Пред оваа верзија, number_format() прифаќаше еден, два или четири параметри (но не три).
7.2.0 number_format() беше променет така што не може да врати -0, претходно -0 можеше да се врати за случаи како каде num ќе биде -0.01.

Примери

Пример #1 number_format() Пример

На пример, француската нотација обично користи две децимали, запирка (',') како децимален сепаратор и празно место (' ') како илјаден сепаратор. Следниот пример покажува различни начини за форматирање на број:

<?php

$number
= 1234.56;

// english notation (default)
echo number_format($number), PHP_EOL;
// 1,235

// French notation
echo number_format($number, 2, ',', ' '), PHP_EOL;
// 1 234,56

$number = 1234.5678;

// english notation without thousands separator
echo number_format($number, 2, '.', ''), PHP_EOL;
// 1234.57

?>

Пример #2 Негативна вредност за decimals

Од PHP 8.3.0, негативна вредност за decimals се користи за заокружување на бројот на значајни цифри пред децималната точка.

<?php
$number
= "1234.5678";
var_dump(number_format($number, -1));
var_dump(number_format($number, -2));
var_dump(number_format($number, -3));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

string(5) "1,230"
string(5) "1,200"
string(5) "1,000"

Види Исто така

  • money_format() - Форматира број како валутна низа
  • sprintf() - Врати форматирана низа
  • printf() Излез на стринг
  • sscanf() - Парсирај влез од низа според формат

Белешки од корисници Управување со PDO конекции

томас на weblizards точка де
пред 17 години
It's not explicitly documented; number_format also rounds:

<?php
$numbers = array(0.001, 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009);
foreach ($numbers as $number)
    print $number."->".number_format($number, 2, '.', ',')."<br>";
?>

0.001->0.00
0.002->0.00
0.003->0.00
0.004->0.00
0.005->0.01
0.006->0.01
0.007->0.01
0.008->0.01
0.009->0.01
џејмс на bandit точка co.nz
пред 16 години
Outputs a human readable number.

<?php
    #    Output easy-to-read numbers
    #    by james at bandit.co.nz
    function bd_nice_number($n) {
        // first strip any formatting;
        $n = (0+str_replace(",","",$n));
        
        // is this a number?
        if(!is_numeric($n)) return false;
        
        // now filter it;
        if($n>1000000000000) return round(($n/1000000000000),1).' trillion';
        else if($n>1000000000) return round(($n/1000000000),1).' billion';
        else if($n>1000000) return round(($n/1000000),1).' million';
        else if($n>1000) return round(($n/1000),1).' thousand';
        
        return number_format($n);
    }
?>

Outputs:

247,704,360 -> 247.7 million
866,965,260,000 -> 867 billion
info на ensostudio точка ru
пред 4 години
Note: use NumberFormatter to convert in human-readable format instead  user function from comments:
<?php
echo NumberFormatter::create('en', NumberFormatter::SPELLOUT)->format(12309); // twelve thousand three hundred nine
echo NumberFormatter::create('ru', NumberFormatter::SPELLOUT)->format(12307.5); //  двенадцать тысяч триста семь целых пять десятых
?>
Јероен де Брајн [NL]
20 години пред
If you want to display a number ending with ,- (like 200,-) when there are no decimal characters and display the decimals when there are decimal characters i use:

function DisplayDouble($value)
  {
  list($whole, $decimals) = split ('[.,]', $value, 2);
  if (intval($decimals) > 0)
    return number_format($value,2,".",",");
  else
    return number_format($value,0,".",",") .",-";
  }
Тео Дим
пред 23 години
formatting numbers may be more easy if u use number_format function.

I also wrote this :
function something($number)
{
    $locale = localeconv();
    return number_format($number,
       $locale['frac_digits'],
        $locale['decimal_point'],
        $locale['thousands_sep']);
}

hope this helps =)
[]'s
MarcM
20 години пред
For Zero fill - just use the sprintf() function

$pr_id = 1;
$pr_id = sprintf("%03d", $pr_id);
echo $pr_id;

//outputs 001
-----------------

$pr_id = 10;
$pr_id = sprintf("%03d", $pr_id);
echo $pr_id;

//outputs 010
-----------------

You can change %03d to %04d, etc.
stm555 на hotmail точка com
20 години пред
I ran across an issue where I wanted to keep the entered precision of a real value, without arbitrarily rounding off what the user had submitted.

I figured it out with a quick explode on the number before formatting. I could then format either side of the decimal.

<?php
      function number_format_unlimited_precision($number,$decimal = '.')
      {
           $broken_number = explode($decimal,$number);
           return number_format($broken_number[0]).$decimal.$broken_number[1];
      }
?>
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.