Алгоритм округления цен, до десятков рублей.
24.11.2024
Задача: Нужно округлять цены, но не просто копейки, а именно округлять копейки, рубли и десятки рублей. Т.е. 1 893.60 округляется до 1 900.
1 |
<? 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 />'; |