Intereting Posts
Использование Ion Auth как отдельного модуля в структуре HMVC Как установить ограничение персонажа на the_content () и the_excerpt () в wordpress Доступ к родительскому элементу элемента с помощью SimpleXML PHP? Как получить канал RSS канала Youtube после 2015 года 20 апреля (без API v3)? Предварительный просмотр функции AJAX в раскрывающемся списке Кодекс: сохранить зарегистрированное состояние Facebook только возвращает имя и идентификатор пользователя Как печатать многомерные массивы в php Как получить доступ к заголовкам запроса, которые не отображаются в $ _SERVER? Предупреждение: Заголовок может содержать не более одного заголовка, обнаружена новая строка Parsley.js Отправить форму не работает при использовании addAsyncValidator и удаленного добавить css 3 фильтра изображений в php Использовать пространство имен php внутри функции Ошибка возврата PHP при использовании fgetcsv Удалить элемент из массива Json

Каков точный эквивалент JS: something.toFixed () в PHP?

Если у меня есть a.toFixed(3); в javascript ('a', равный 2.4232), что такое точная эквивалентная команда в php для ее получения? Я искал его, но не нашел подходящего объяснения, прилагаемого к ответам.

Я обнаружил, что sprintf и number_format обоим числом, поэтому я использовал это:

 $number = 2.4232; $decimals = 3; $expo = pow(10,$decimals); $number = intval($number*$expo)/$expo; // = 2423/100 

Вы пробовали это:

 round(2.4232, 2); 

Это даст вам ответ 2.42.

Более подробную информацию можно найти здесь: http://php.net/manual/en/function.round.php

Точной эквивалентной командой в PHP является функция number_format :

 number_format($a, 3, ".", ""); // 2.423 
  • он округляет число до третьего десятичного знака
  • он заполняется символами '0', если необходимо, чтобы всегда иметь три десятичных цифры

Вот практическая функция:

 function toFixed($number, $decimals) { return number_format($number, $decimals, ".", ""); } toFixed($a, 3); // 2.423 

Прямым эквивалентом является sprintf('%.03F', $a) . Это будет отформатировать рассматриваемое значение как число с 3 десятичными цифрами. Он также будет округлен, если потребуется.

Вот перевод:

 function toFixed($number, $dec_length){ $pos=strpos($number.'', "."); if($pos>0){ $int_str=substr($number,0,$pos); $dec_str=substr($number, $pos+1); if(strlen($dec_str)>$dec_length){ return $int_str.($dec_length>0?'.':'').substr($dec_str, 0,$dec_length); }else{ return $number; } }else{ return $number; } } //toFixed(1234.678, 0) = 1234 //toFixed(1234.678, 1) = 1234.6 //toFixed(1234.678, 2) = 1234.67 //toFixed(1234.678, 4) = 1234.678 

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