Php вывод два знака

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

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

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

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

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

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

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

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

Читайте также:  Flip image in javascript

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

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

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

Источник

number_format

Функция принимает один, два или четыре аргумента (не три):

Если передан только один аргумент, number будет отформатирован без дробной части, но с запятой («,») между каждыми тремя цифрами.

Если переданы два аргумента, number будет отформатирован с decimals знаками после точки («.») и с запятой («,») между каждыми тремя цифрами.

Если переданы все четыре аргумента, number будет отформатирован с decimals знаками после точки и с разделителем между между каждыми тремя цифрами, при этом в качестве десятичной точки будет использован dec_point , а в качестве разделителя групп — thousands_sep .

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

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

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

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

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

Возвращается отформатированное число number .

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

Версия Описание
5.4.0 Функция поддерживает многобайтную строку в качестве параметров dec_point и thousands_sep . В предыдущих версиях в качестве разделителя использовался только первый байт из каждого параметра.

Примеры

Пример #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() — Разбирает строку в соответствии с заданным форматом

Источник

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 до двух знаков после запятой?

$number = "520"; // It's a string from a DB $formatted_number = round_to_2dp($number); echo $formatted_number; 

Как должна быть определена функция round_to_2dp() ?

Вы можете использовать number_format () :

return number_format((float)$number, 2, '.', ''); 
$foo = "105"; echo number_format((float)$foo, 2, '.', ''); // Outputs -> 105.00 

Эта функция возвращает строку .

$padded = sprintf('%0.2f', $unpadded); // 520 -> 520.00 

Используйте round() (используйте, если вы ожидаете число в формате float, иначе используйте number_format () в качестве ответа, данного Codemwnci ):

echo round(520.34345,2); // 520.34 echo round(520, 2); // 520 

Описание:

float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] ); 

Возвращает округленное значение val до указанной precision (количество цифр после десятичной точки). точность также может быть отрицательной или нулевой (по умолчанию).

Примеры # 1 round()

Примеры примеров # 2

$number = 1234545454; echo $english_format_number = number_format($number, 2); 
echo round(5.045, 2); // 5.05 echo round(5.055, 2); // 5.06 

Используйте функцию PHP number_format () .

Вы можете использовать printf php printf или sprintf :

$num = 2.12; echo sprintf("%.3f",$num); 

Вы можете работать так же без echo , ex: sprintf(«%.3f»,$num);

$decimals = 2; $number = 221.12345; $number = $number * pow(10,$decimals); $number = intval($number); $number = $number / pow(10,$decimals); 

round_to_2dp – это определенная пользователем функция, ничего не может быть сделано, если вы не разместили объявление этой функции

Однако, моя догадка делает это number_format($number,2);

Еще одним экзотическим способом решения этой проблемы является использование bcadd() с фиктивным значением для $ right_operand 0 .

$formatted_number = bcadd($number, 0, 2); 
$number = sprintf('%0.2f', $numbers); // 520.89898989 -> 520.89 

Это даст вам 2 числа после десятичной дроби.

$retailPrice = 5.989; echo number_format(floor($retailPrice*100)/100,2, '.', ''); 

Он вернет 5.98 без округления числа.

bcdiv($number, 1, 2) //2 varies for digits after decimal 

Это будет отображать ровно две цифры после десятичной дроби.

Преимущество: Если вы хотите отображать две цифры после значения float, а не для int, используйте это.

$twoDecNum = sprintf('%0.2f', round($number, 2)); 

Округление правильно округляет число, а sprintf заставляет его до 2 знаков после запятой, если после округления оно будет иметь только 1 десятичное место.

$double = '21.188624'; echo intval($double).'.'.substr(end(explode('.',$double)),0,2); 

Если вы хотите использовать 2 десятичные цифры во всем проекте, вы можете определить

Тогда следующая функция даст желаемый результат

$myvalue=10.165445; echo bcadd(0,$myvalue); //result=10.11 

Но если вы не используете функцию bcscale, вам нужно написать код следующим образом, чтобы получить результат вашего желания

 $myvalue=10.165445; echo bcadd(0,$myvalue,2); //result=10.11 

Здесь я получаю 2 десятичных после. (Точка), используя функцию ..

function truncate_number( $number, $precision = 2) < // Zero causes issues, and no need to truncate if ( 0 == (int)$number ) < return $number; >// Are we negative? $negative = $number / abs($number); // Cast the number to a positive to solve rounding $number = abs($number); // Calculate precision number for dividing / multiplying $precision = pow(10, $precision); // Run the math, re-applying the negative value to ensure returns correctly negative / positive return floor( $number * $precision ) / $precision * $negative; > 

Результаты вышеуказанной функции:

echo truncate_number(2.56789, 1); // 2.5 echo truncate_number(2.56789); // 2.56 echo truncate_number(2.56789, 3); // 2.567 echo truncate_number(-2.56789, 1); // -2.5 echo truncate_number(-2.56789); // -2.56 echo truncate_number(-2.56789, 3); // -2.567 

Новый правильный ответ

Используйте встроенную функцию PHP bcdiv

echo bcdiv(2.56789, 1, 1); // 2.5 echo bcdiv(2.56789, 1, 2); // 2.56 echo bcdiv(2.56789, 1, 3); // 2.567 echo bcdiv(-2.56789, 1, 1); // -2.5 echo bcdiv(-2.56789, 1, 2); // -2.56 echo bcdiv(-2.56789, 1, 3); // -2.567 

Вы можете использовать функцию PHP round () .

echo round(3.4); // 3 echo round(3.5); // 4 echo round(3.6); // 4 echo round(3.6, 0); // 4 echo round(1.95583, 2); // 1.96 echo round(1241757, -3); // 1242000 echo round(5.045, 2); // 5.05 echo round(5.055, 2); // 5.06 

Источник

Оцените статью