PHP: Функция округления цен, до десятков рублей
Задача: Нужно округлять цены, но не просто копейки, а именно округлять копейки, рубли и десятки рублей. Т.е. 1 893.60 округляется до 1 900.
function myRound($s)
{
//Округляем копейки
$sRet = round($s);
$iLen = strlen($sRet);
// Превращаем строку в массив символов
$chars = preg_split('//', $sRet, -1, PREG_SPLIT_NO_EMPTY);
//- $sTMP = $chars[$iLen-3].'.'.$chars[$iLen-2].$chars[$iLen-1];
// Формируем из первых цифр, которые округлять не нужно, начало цены.
for($i = 0; $i < $iLen-2; $i++)
{
$sTMP .= $chars[$i];
}
$sTMP .= '.'.$chars[$iLen-2].$chars[$iLen-1];
// Выводим отладочную информацию
echo '$sRet: '.$sRet.'<br />';
echo '$iLen: '.$iLen.'<br />';
echo '$sTMP: '.$sTMP.'<br />';
// Округляем получившееся число и добавляем в конец два нули,
// для сохранения исходной длины
return round($sTMP).'00';
}
$s1 = '113869.5';
echo myRound($s1). '<br />';