Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) Проблемы с форматм числа / 5 сообщений из 5, страница 1 из 1
29.12.2005, 17:31
    #33464920
mod
mod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PERL) Проблемы с форматм числа
Сздал формат:

format Limitn =
RD@|||||@<<<<<@||||||||||||||@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< *
sprintf("%06d",$RowCount++),$TranRowCount++,sprintf("%015d",${$Mrow->[2]}),${$Mrow->[0]},${$Mrow->[1]}
.

В него подставляю sprintf("%015d",${$Mrow->[2]}) и фигня
до 9 миллинонов работает(7 разрядное число), а после 10(8 разрядное число) выдаёт - и какое-то число:
RD0000031 -000018949672966037143900904816 БЕЛКИН
С меньшим всё в порядке(с выравниванием нулями впереди и никаких минусов)
RD0000031 0000008000000006037143900904816 БЕЛКИН
Главное ведь выделил 15 разрядов...
Что не так? Может типы данных в Perl(хотя они же не описываются) имеют ограничения?
...
Рейтинг: 0 / 0
29.12.2005, 17:42
    #33464952
mod
mod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PERL) Проблемы с форматм числа
Да там где ошибка вводили 24 млн...
...
Рейтинг: 0 / 0
30.12.2005, 10:25
    #33465451
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PERL) Проблемы с форматм числа
modСздал формат:

format Limitn =
RD@|||||@<<<<<@||||||||||||||@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< *
sprintf("%06d",$RowCount++),$TranRowCount++,sprintf("%015d",${$Mrow->[2]}),${$Mrow->[0]},${$Mrow->[1]}
.

В него подставляю sprintf("%015d",${$Mrow->[2]}) и фигня
до 9 миллинонов работает(7 разрядное число), а после 10(8 разрядное число) выдаёт - и какое-то число:
RD0000031 -000018949672966037143900904816 БЕЛКИН
С меньшим всё в порядке(с выравниванием нулями впереди и никаких минусов)
RD0000031 0000008000000006037143900904816 БЕЛКИН
Главное ведь выделил 15 разрядов...

...это ты не 15 разрядов выделил, а сказал printf забить число нулями вначале, до 15 знаков в длину...


Что не так? Может типы данных в Perl(хотя они же не описываются) имеют ограничения?

%d - в printf вроде как integer, платформозависимый, со всеми ограничениями по длине присущими этому типу данных.
...
Рейтинг: 0 / 0
06.01.2006, 06:09
    #33469835
mod
mod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PERL) Проблемы с форматм числа
g613 А чем %d заменить чтобы справа нули ставились?
...
Рейтинг: 0 / 0
11.01.2006, 10:58
    #33475837
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PERL) Проблемы с форматм числа
modg613 А чем %d заменить чтобы справа нули ставились?

1) perldoc -f sprintf про форматы.

2) написать самому, в простейшем случае: `perl -e '$d = 999; print "0"x(15-length($d)), $d'`...
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) Проблемы с форматм числа / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]