| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Округление числа |
| Автор: KesT 4.12.2002, 02:48 |
| Скажите плиз как округлить число допустим 5.71428571428571 или 122.5 или любое НЕ целое число до целых?? |
| Автор: Cepera 4.12.2002, 03:50 |
| use POSIX; sub round {floor($_[0]+0.5);} |
| Автор: KesT 4.12.2002, 03:59 |
| А можно поточнее |
| Автор: NightGoblin 4.12.2002, 10:22 |
| Дык а че там подключать - определяешь такую функцию, как написано, а потом вызываешь $rounded_value = round ($value); В итоге, в $rounded_value будет округленное значение $value. (5.3 => 5; 5.5 => 6) |
| Автор: Cepera 4.12.2002, 15:18 |
| совершенно верно |
| Автор: KesT 4.12.2002, 20:00 |
| Спасибо приогромное. |
| Автор: HalkaR 8.12.2002, 07:03 |
| В общем-то если не предпологается что-то особенно замудрое тоже самое можно сделать regexp'ом. Что-то типа $text =~s/^(.+?\...).*?)/$1/; Насколько это быстрее или медленнее не знаю, но хоть громоздкий модуль грузить не надо. |
| Автор: NightGoblin 11.12.2002, 08:40 |
| мдяя... тогда уж проще сделать int ($text) - проблема в том, что работать это будет уродливо, так же, как и через regexp, разве только быстрее. А чтобы не грузить весь модуль из-за одной функции, можно написать use POSIX "floor"; |
| Автор: konst 12.12.2002, 02:48 |
| без подгрузки модулей: $b = sprintf("%.0f",$a); |