Округляем число до ближайшего разряда

Иногда бывает нужно произвести округление числа до ближайшего разрядного целого числа. Например, 10500 - до 11000 и т.п.

Данная функция особенно востребована для создания фильтров по цене или любому другому числовому значению. 

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

Отрицательный второй параметр функции round предназначен именно для такого округления:

round((ceil($minPrice) + $step), -(strlen($step) - 1));

В качестве примера приведу механизм разбивки отрезка из цен от минимальной до максимальной цены на 4 равных отрезка

$arItem = $arResult['ITEMS']['BASE'];
$arPriceSteps = array();
$stepsCnt = 4;
$minPrice = floatval($arItem['VALUES']['MIN']['VALUE']);
$maxPrice = floatval($arItem['VALUES']['MAX']['VALUE']);
$step = round(($maxPrice - $minPrice) / $stepsCnt);

if ($step >= 100)
{
	for ($i = 0; $i < ($stepsCnt - 1); $i++)
	{
		$arPriceSteps[] = round((ceil($minPrice) + $step), -(strlen($step) - 1));
		$minPrice += $step;
	}
	$arPriceSteps[] = round(ceil($maxPrice), -(strlen($step) - 1));
}
Количество показов: 1780
20.11.2018

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.


Fatal error: Declaration of Pai\Sitemap\PaiSeoSitemap::Create($site_id, $max_execution_time, $NS, $arOptions, $modules, $iblocks, $clearIndexes) must be compatible with CAllSiteMap::Create($site_id, $max_execution_time, $NS, $arOptions = []) in /home/bitrix/www/bitrix/modules/pai.sitemap/lib/paiseositemap.php on line 183
[ErrorException] E_COMPILE_ERROR
Declaration of Pai\Sitemap\PaiSeoSitemap::Create($site_id, $max_execution_time, $NS, $arOptions, $modules, $iblocks, $clearIndexes) must be compatible with CAllSiteMap::Create($site_id, $max_execution_time, $NS, $arOptions = []) (0)
/home/bitrix/www/bitrix/modules/pai.sitemap/lib/paiseositemap.php:183
----------