Forum Webscript.Ru
Программирование => Perl => Тема начата: Forza от 08 Сентября 2004, 19:13:05
-
Как при выводе чисел автоматически добавлять в их начало нули до необходимого количества цифр. Т.е. если такое количество цифр - 5, то "23" выведется как "00023".
p.s. Понятно, что такую фишку можно легко написать самому, но почему бы не воспользоваться чем-то стандартным, если оно уже есть?
-
Мда, вот что значит "a hard day\'s night"(c). Наверное, совсем запарился на работе, раз такие глупые вопросы задаю. :insane: Это всё легко реализуется самим в одну строчку. Например:
my ($a,$number_of_digits) = (23,5);
print \'0\' x ($number_of_digits - $length($a)) . $a
if $number_of_digits > $length($a);
Тему можно и нужно закрывать.
-
printf "%5d", 23;
-
Green Kakadu:
printf "%5d", 23;
А вот это совсем не в тему, ибо так выведется " 23" (три пробела перед "23"), а мне надо "00023".
-
2Forza
исправляюсь:
printf "%05d", 23;
рез-т: 00023 как я понял это нужно?
-
Green Kakadu:
рез-т: 00023 как я понял это нужно?
Да. То, что надо. Спасибо.
-
Green Kakadu:
printf "%05d", 23;
А если у меня количество разрядов заранее неизвестно и в ходе работы программы хранится в переменной?
Это уже надо не для вывода нулей, а для вывода таблицы в текстовом виде, т.е. что-то типа printf ("%-40s",$string). Как тут вместо "40" поставить значение переменной?
-
Forza
$var=40;
printf ("%-".$var."s", $string);
-
commander, спасибо.
[OFF]А вообще-то я должен был сам догадаться, блин.[/OFF]