Number format php округление

number_format

Формирует число со сгруппированными тысячами и,по желанию,десятичными цифрами.

Parameters

Устанавливает количество десятичных цифр. Если 0 , decimal_separator опускается в возвращаемом значении.

Устанавливает разделитель для десятичной точки.

Устанавливает тысячный сепаратор.

Return Values

Отформатированная версия num .

Changelog

Version Description
8.0.0 До этой версии number_format () принимал один, два или четыре параметра (но не три).
7.2.0 number_format () был изменен на невозможность возврата -0 , ранее -0 можно было возвращать в случаях, например, когда num было бы -0.01 .

Examples

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

Например,во французской нотации обычно используются две десятичные цифры,запятая (‘,’)в качестве десятичного разделителя и пробел (‘ ‘)в качестве тысячи разделителей.Следующий пример демонстрирует различные способы форматирования числа:

 $number = 1234.56; // english notation (default) $english_format_number = number_format($number); // 1,235 // French notation $nombre_format_francais = number_format($number, 2, ',', ' '); // 1 234,56 $number = 1234.5678; // english notation without thousands separator $english_format_number = number_format($number, 2, '.', ''); // 1234.57 ?>

See Also

  • money_format () — Форматирует число как строку валюты
  • sprintf () — Возвращает отформатированную строку
  • printf () — выводит форматированную строку
  • sscanf () — анализирует ввод строки в соответствии с форматом
PHP 8.2

(PHP 4 4.1.0,5,7,8)nl_langinfo Запрос информации о языке и локали nl_langinfo()используется для доступа к отдельным элементам категорий локали.

(PHP 4, 5, 7, 8) nl2br Вставляет разрывы строк HTML перед всеми символами новой строки string Возвращает строку с

(PECL OAuth >=0.99.7) oauth_get_sbs Генерировать базовую строку подписи Генерирует базовую строку подписи в соответствии с pecl/oauth.

(PECL OAuth >=0.99.2) oauth_urlencode URI в соответствии с RFC 3986 Кодирует URI в соответствии с RFC 3986.

Источник

number_format

Форматирует число сгруппированными тысячными и, возможно, десятичными цифрами, используя математическое правило округления.

Список параметров

Устанавливает число знаков после запятой. Если 0 , decimal_separator опускается в возвращаемом значении.

Устанавливает разделитель дробной части.

Устанавливает разделитель тысяч.

Возвращаемые значения

Отформатированное число num .

Список изменений

Версия Описание
8.0.0 До этой версии функция number_format() принимала один, два или четыре параметра (но не три).
7.2.0 number_format() была изменена, чтобы не возвращать -0 , ранее -0 могло быть возвращено в случаях, когда num был -0.01 .

Примеры

Пример #1 Пример использования number_format()

Во Франции обычно используются 2 знака после запятой (‘,’), и пробел (‘ ‘) в качестве разделителя групп. Этот пример демонстрирует различные способы форматирования чисел:

// английский формат (по умолчанию)
$english_format_number = number_format ( $number );
// 1,235

// французский формат
$nombre_format_francais = number_format ( $number , 2 , ‘,’ , ‘ ‘ );
// 1 234,56

// английский формат без разделителей групп
$english_format_number = number_format ( $number , 2 , ‘.’ , » );
// 1234.57

Смотрите также

  • money_format() — Форматирует число как денежную величину
  • sprintf() — Возвращает отформатированную строку
  • printf() — Выводит отформатированную строку
  • sscanf() — Разбирает строку в соответствии с заданным форматом

User Contributed Notes 9 notes

It’s not explicitly documented; number_format also rounds:

$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 , ‘.’ , ‘,’ ). «
» ;
?>

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

Note: use NumberFormatter to convert in human-readable format instead user function from comments:
echo NumberFormatter :: create ( ‘en’ , NumberFormatter :: SPELLOUT )-> format ( 12309 ); // twelve thousand three hundred nine
echo NumberFormatter :: create ( ‘ru’ , NumberFormatter :: SPELLOUT )-> format ( 12307.5 ); // двенадцать тысяч триста семь целых пять десятых
?>

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,».»,»,») .»,-«;
>

Outputs a human readable number.

# 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

For Zero fill — just use the sprintf() function

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

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

You can change %03d to %04d, etc.

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.

function number_format_unlimited_precision ( $number , $decimal = ‘.’ )
$broken_number = explode ( $decimal , $number );
return number_format ( $broken_number [ 0 ]). $decimal . $broken_number [ 1 ];
>
?>

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’]);
>

My simpler solution to the problem of the decimal number in this function being longer than the specified number of decimals.

Standard result for number_format() is..
number_format(5.00098, 2) = 5.00

My function will return the result = 5.001

// ** Warning: Does not work with scientific notation. Conversion to a real number is required. **

echo auto_decimal_format ( 5.0005620 ); // print 5.0006
echo auto_decimal_format ( 5.0009820 ); // print 5.001
echo auto_decimal_format ( 5.00098 , 8 ); // print 5.00098000
echo auto_decimal_format ( 1.0295691366783E-5 , 2 ); // print 0.00

function auto_decimal_format ( $n , $def = 2 ) $a = explode ( «.» , $n );
if ( count ( $a )> 1 ) $b = str_split ( $a [ 1 ]);
$pos = 1 ;
foreach ( $b as $value ) if ( $value != 0 && $pos >= $def ) $c = number_format ( $n , $pos );
$c_len = strlen ( substr ( strrchr ( $c , «.» ), 1 ));
if ( $c_len > $def ) < return rtrim ( $c , 0 ); >
return $c ; // or break
>
$pos ++;
>
>
return number_format ( $n , $def );
>

To prevent the rounding that occurs when next digit after last significant decimal is 5 (mentioned by several people below):

function fnumber_format ( $number , $decimals = » , $sep1 = » , $sep2 = » )

if (( $number * pow ( 10 , $decimals + 1 ) % 10 ) == 5 ) //if next not significant digit is 5
$number -= pow ( 10 , -( $decimals + 1 ));

return number_format ( $number , $decimals , $sep1 , $sep2 );

$t = 7.15 ;
echo $t . » | » . number_format ( $t , 1 , ‘.’ , ‘,’ ) . » | » . fnumber_format ( $t , 1 , ‘.’ , ‘,’ ) . «\n\n» ;
//result is: 7.15 | 7.2 | 7.1

$t = 7.3215 ;
echo $t . » | » . number_format ( $t , 3 , ‘.’ , ‘,’ ) . » | » . fnumber_format ( $t , 3 , ‘.’ , ‘,’ ) . «\n\n» ;
//result is: 7.3215 | 7.322 | 7.321
> ?>

have fun!

Источник

Number format php округление

В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Совет: активация отображения всех ошибок в PHP

При поднятии PHP проекта на новом рабочем окружении могут возникнуть ошибки отображение которых изначально скрыто базовыми настройками. Это можно исправить, прописав несколько команд.

Источник

Форматировать число до двух знаков после запятой в PHP

В этой статье показано, как отформатировать число до двух знаков после запятой в PHP.

1. Использование number_format() функция

Вы можете использовать number_format() Функция для форматирования числа до нужного количества цифр после запятой. Он принимает четыре параметра: форматируемое число, количество устанавливаемых десятичных цифр, десятичный разделитель и разделитель тысяч в указанном порядке. Это работает, но возвращает отформатированную строку, а не число. Если вам нужно значение с плавающей запятой вместо строки, вы можете передать возвращенную строку в floatval() функция.

2. Использование sprintf() функция

В качестве альтернативы вы можете использовать sprintf() Функция для форматирования числа. Он создает строку в соответствии с указанной строкой форматирования. Вы можете отформатировать число до двух знаков после запятой, используя %.2f модификатор. Следующий пример кода демонстрирует:

3. Использование round() функция

Если вам нужно округлить значение до заданной точности после запятой, вы можете использовать round() функция. Следующий пример иллюстрирует его использование. Обратите внимание, что round() функция не добавляет нули в конце числа, чтобы соответствовать требуемым цифрам после запятой.

Режим округления по умолчанию round() является PHP_ROUND_HALF_UP который округляет число от нуля, когда оно находится на полпути. Есть несколько других констант, которые указывают режим, в котором происходит округление. Эти режимы PHP_ROUND_HALF_DOWN , PHP_ROUND_HALF_EVEN , а также PHP_ROUND_HALF_ODD , которые округляют указанное число до нуля, ближайшего четного значения и ближайшего нечетного значения соответственно.

4. Использование bcadd() функция

Наконец, вы можете использовать математическую функцию BC. bcadd() , который может складывать два своих операнда по заданному масштабу, указывая количество знаков после запятой в результате. Чтобы отформатировать число до двух знаков после запятой, вы можете использовать это число в качестве первого операнда и 0 в качестве второго операнда и указать масштаб 2. Следующий код демонстрирует:

Источник

Округление чисел в PHP

В PHP для округления чисел применяются следующие функции:

Округление к ближайшему целому

Функция round($num, $precision) возвращает округлённое значение $num с указанной точностью $precision (количество цифр после запятой).

echo round(111.455); // 111 // Один знак после запятой echo round(111.455, 1); // 111.5 // Два знака после запятой echo round(111.455, 2); // 111.46

Также функция round() может округлять целую часть числа, для этого нужно указать отрицательный $precision .

// Один знак перед запятой echo round(111.455, -1); // 110 // Два знака перед запятой echo round(111.455, -2); // 100

Третьим аргументом функции можно повлиять способ округления.

PHP_ROUND_HALF_UP Округляет от нуля, когда следующий знак находится посередине.
То есть округляет 1.5 в 2 и -1.5 в -2.
PHP_ROUND_HALF_DOWN Округляет к нулю, когда следующий знак находится посередине.
То есть округляет 1.5 в 1 и -1.5 в -1.
PHP_ROUND_HALF_EVEN Округляет до ближайшего чётного значения, когда следующий знак находится посередине.
То есть округляет 1.5 и 2.5 в 2.
PHP_ROUND_HALF_ODD Округляет до ближайшего нечётного значения, когда следующий знак находится посередине.
То есть округляет 1.5 в 1 и 2.5 в 3.

Округление к большему

Функция ceil($num) – всегда округляет число в большую сторону.

echo ceil(1.1); // 2 echo ceil(1.5); // 2 echo ceil(1.6); // 2

Источник

Читайте также:  Сложный оператор if java
Оцените статью