Автор Тема: добавление нулей в начало числа  (Прочитано 4453 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
добавление нулей в начало числа
« : 08 Сентября 2004, 19:13:05 »
Как при выводе чисел автоматически добавлять в их начало нули до необходимого количества цифр. Т.е. если такое количество цифр - 5, то "23" выведется как "00023".

p.s. Понятно, что такую фишку можно легко написать самому, но почему бы не воспользоваться чем-то стандартным, если оно уже есть?

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
добавление нулей в начало числа
« Ответ #1 : 08 Сентября 2004, 21:54:49 »
Мда, вот что значит "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);

Тему можно и нужно закрывать.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
добавление нулей в начало числа
« Ответ #2 : 08 Сентября 2004, 23:15:18 »
printf "%5d", 23;
 в исканиях.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
добавление нулей в начало числа
« Ответ #3 : 08 Сентября 2004, 23:55:47 »
Цитировать
Green Kakadu:
printf "%5d", 23;

А вот это совсем не в тему, ибо так выведется "   23" (три пробела перед "23"), а мне надо "00023".

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
добавление нулей в начало числа
« Ответ #4 : 09 Сентября 2004, 00:17:49 »
2Forza
исправляюсь:
printf "%05d", 23;

рез-т: 00023 как я понял это нужно?
 в исканиях.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
добавление нулей в начало числа
« Ответ #5 : 09 Сентября 2004, 10:12:23 »
Цитировать
Green Kakadu:
рез-т: 00023 как я понял это нужно?


Да. То, что надо. Спасибо.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
добавление нулей в начало числа
« Ответ #6 : 22 Сентября 2004, 14:17:04 »
Цитировать
Green Kakadu:
printf "%05d", 23;


А если у меня количество разрядов заранее неизвестно и в ходе работы программы хранится в переменной?
Это уже надо не для вывода нулей, а для вывода таблицы в текстовом виде, т.е. что-то типа printf ("%-40s",$string). Как тут вместо "40" поставить значение переменной?

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
добавление нулей в начало числа
« Ответ #7 : 22 Сентября 2004, 14:25:11 »
Forza
$var=40;
printf ("%-".$var."s", $string);
And no religion too...

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
добавление нулей в начало числа
« Ответ #8 : 22 Сентября 2004, 14:27:41 »
commander, спасибо.
[OFF]А вообще-то я должен был сам догадаться, блин.[/OFF]

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28