Форматирование числа

Unsiker

Новичок
У меня есть операция деления.
Мне нужно отформатировать результат. Если это целое число то оставить без изменений, а если дробное (float) то 2 знака после запятой.
Подскажите это как сделать с помощью только одной стандатной функцией PHP
 

Redjik

Джедай-мастер
Хм, я делал подобным образом, но к строке приводил и точку искал...
копейки, они такие копейки...
Тоже интересует изящное решение. В свое время не нашел.
 

keltanas

marty cats
А я хочу создать сайт на php. Но только одной стандартной функцией. Подскажите, как это сделать?
После деления в любом случае получается float. Напиши свою функцию для форматирования и всего-то.
Даже если допустить, что есть такая функция, которая тебе нужна. Ты ее везде напихаешь. А через месяц овнер скажет, что хочет форматировать числа по другому. Ты полезешь во всем коде реплэйсить эту функцию на другую?
 

Unsiker

Новичок
keltanas
А я хочу создать сайт на php. Но только одной стандартной функцией. Подскажите, как это сделать?
После деления в любом случае получается float. Напиши свою функцию для форматирования и всего-то.
рано тебе сайты писать, садись ка ты за учебник "PHP 5", да учи мат. часть
PHP:
	$a = 10;
	$b = 5;
	$c = $a/$b;
	echo '<br />type $a: ' . gettype($a);
	echo '<br />type $b: ' . gettype($b);
	echo '<br />type $c: ' . gettype($c);
 
  • Like
Реакции: Dovg

hell0w0rd

Продвинутый новичок
О какой стандартной функции идет речь?) эта задача довольно нестандартна, чтобы решаться стандартной функцией
 

Unsiker

Новичок
Пока самая кототкая запись это
PHP:
$a = 3.3333333;
echo is_int($a) ? sprintf('%d', $a) : sprintf('%.2f', $a);
но я более чем уверен в том что это можно сделать одной функцией без проверки
 

hell0w0rd

Продвинутый новичок
Unsiker
глобальная область видимости в php и так засрана, не будет там такого, изучив подробнее модификаторы printf-а тоже можно сказать что такого нет
Вы выдумываете задачу на пустом месте, такая штука должна быть во вьюхе, фильтром к выводу
 

damner2

Новичок
но я более чем уверен в том что это можно сделать одной функцией без проверки
Ну конечно можно одной функцией и без проверки! Надеюсь, ты его применишь у себя :D
PHP:
echo preg_replace(['|(\\d+)(\.\\d)$|', '|(\\d+)(\.\\d{2}).*$|'], ['$1${2}0', '\\1\\2'], $value);
 

Unsiker

Новичок
PHP:
echo preg_replace(['|(\\d+)(\.\\d)$|', '|(\\d+)(\.\\d{2}).*$|'], ['$1${2}0', '\\1\\2'], $value);
Внимание! Ребятки начинающие програмеры. Никода не используйте выше написаний код работы с числами в PHP 4 и выше, а если используете то проверяйте на пригодность
PHP:
$value = 3.14/100000;
echo $value."<br />";
echo sprintf("%.2f", $value)."<br />";
echo preg_replace(array('|(\\d+)(\.\\d)$|', '|(\\d+)(\.\\d{2}).*$|'), array('$1${2}0', '\\1\\2'), $value);
 

hell0w0rd

Продвинутый новичок
Ты чего хочешь то от форума?)) вторую тему уже пытаешься вместо программирования искать готовые функции. Не бывает такого, язык - инструмент, скажи спасибо за те функции которые уже встроили, пример с регуляркой показывает абсурдность попытки решения в одну функцию, даже если допилить регулярку до твоих нужд
 
Сверху