Категории |
Ошибка: function os_round()В файле includes/functions/include.php имеется функция os_round(). function os_round($number, $precision) { if (strpos($number, '.') && (strlen(substr($number, strpos($number, '.')+1)) > $precision)) { $number = substr($number, 0, strpos($number, '.') + 1 + $precision + 1); if (substr($number, -1) >= 5) { if ($precision > 1) { $number = substr($number, 0, -1) + ('0.' . str_repeat(0, $precision-1) . '1'); } elseif ($precision == 1) { $number = substr($number, 0, -1) + 0.1; } else { $number = substr($number, 0, -1) + 1; } } else { $number = substr($number, 0, -1); } } return $number; } Так она будет выдавать что угодно, только не округление. В файле admin/includes/functions/general.php имеется работающий ;) анаалог function os_round($value, $precision) { return round($value, $precision); } Заменить первую функцию второй. А чем же после такой замены фирменная функция os_round будет отличаеться от обыкновенной PHP-функции round ? Речь не о том, что os_round() будет отличаться от round(), а том, что os_round() будет работать. Как round(). ;) Чтобы так + 1 + $precision + 1 гениально написать, что и сколько должен принять на грудь программер?Речь не о том, что os_round() будет отличаться от round(), а том, что os_round() будет работать. Как round(). ;) Намек был на то, что os_round() - будет лишняя деталь. А первая функция правильно округляет выражения вида 33 522.454 33тыс 522.454 Может, для того ее и писали? grig вы троллите? grig вы троллите? Ни фига не округляет первая функция. Вы хоть прогоняли её дибаггинг листом, чтоб такое говорить? Я прогонял до сумм в 10000000. Не округляет, зато регулярно искажает вывод (при каких-то аргументах рисует нули). Это первое. Второе - у меня нет времени, ни желания выискивать везде в коде os_round() и заменять на round(), и вообще заниматься подобными глупейшими операциями. Третье - если вам нечего сказать по существу.... ну вы меня поняли. 1. Пример бы привели, один из миллионов прогнанных Вами 2. Нет времени - не надо, разве я заставляю? 3. Можно было б такие глупости и не писать, особенно если у Вас занятость большая. По существу: я лишь привел нестандартный пример, когда функция эта работает. И не очень понятно, откуда такая странная нервная реакция. в этой ф-и уже сама идея округлять строку бредовая.. мы работаем с числом а потом уже его как хочш форматируй и т.д. |
|