По умолчанию число десятичных мест для вывода в PHP

Я делаю свою работу php в своем dev-блоке дома, где у меня есть рудиментарная настройка LAMP. Когда я смотрю на свой веб-сайт в своем домашнем ящике, любые числа, которые я эхо, автоматически усекаются до наименьшей требуемой точности. Например, 2 отражается как 2, 2.2000 отражается как 2.2.

В окне производства все числа отражены по крайней мере с одним ненужным нулем, например 100 становится 100,0. В обоих случаях версия PHP – 5.2.5. Кто-нибудь знает, если есть параметр, который я могу изменить, который заставит PHP автоматически удалить ненужные нули? Я не хочу, чтобы мне приходилось ко всем местам в моем коде, где я выводил число и заменял эхо с printf или что-то в этом роде.

Большое спасибо.

И когда вы не можете полагаться на конфигурацию PHP, не забудьте о number_format (), который вы можете использовать для определения того, как возвращается число, например:

// displays 3.14 as 3 and 4.00 as 4 print number_format($price, 0); // display 4 as 4.00 and 1234.56 as 1,234.56 aka money style print number_format($int, 2, ".", ","); 

PS: и старайтесь избегать использования money_format (), поскольку он не будет работать в Windows и некоторых других ящиках

Быстрый просмотр доступных настроек INI позволяет мне изменить ваши значения точности ?

спасибо за все ответы – решение заключалось в том, чтобы вернуть возвращаемое значение метода, ответственного за float. Т.е. это делалось

 return someNumber.' grams'; 

Я просто изменил его на

 return (float)someNumber.' grams'; 

то при необходимости PHP усекал любые конечные нули.

Может кто-нибудь закрыть это?

Просто исключить другие возможные причины: Откуда берутся цифры? Делает ли это это с буквальными значениями?

Не похоже, что это может привести только к настройке точности. Проверьте также, может ли что-то мешать выходу через такие вещи, как auto_prepend_file или output_handler .

Вы должны использовать команду round () для округления нужной точности, иначе в какой-то день вы получите что-то вроде 2.2000000000123 из-за характера арифметики float.

Попробуйте встроенную функцию round ;

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

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

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

 <?php 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 ?> 

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

 <?php echo round(9.5, 0, PHP_ROUND_HALF_UP); // 10 echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9 echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10 echo round(9.5, 0, PHP_ROUND_HALF_ODD); // 9 echo round(8.5, 0, PHP_ROUND_HALF_UP); // 9 echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8 echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8 echo round(8.5, 0, PHP_ROUND_HALF_ODD); // 9 ?>