![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
dimpv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.5.2010 Репутация: нет Всего: нет |
Добрый день! Для различной бухгалтерской отчетности пишу функцию преобразования числа в строку по формату, типа -1234567.67 -> 1,234,567.67- или -000,000,001,234,567.67, например zzz,zzz,zzz,zzz,zzz,zzz.zz или >>>,>>>,>>>,>>>,>>z.zz ну и т.д., т.к. штатный sprintf представляется ограниченным, а write пишет непосредственно в файл, да и просто хочется написать свой механизм с возможностью его доработки по запросу, формат задается параметром. Столкнулся с тем, что число в Perl может буть представленно по разному, например 100.00 или 1е+2, мне же надо из любого числа в формате Perl получить вариант без экспоненты в виде строки, дабы потом уже разобрать ее и напечатать по формату, ну например 30е-5 преобразуется в 0.0003, а 30е+5 в 3000000 и т.д. с определенный точностью - количеством знаков в дробной части, кто-нибудь делал такое ?
|
|||
|
||||
ramus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 21.2.2008 Репутация: 1 Всего: 1 |
Уважаемый dimpv!
Я не имею опыта по сути вопроса, но отвечая на вопрос "число в Perl может быть представлено по разному, например 100.00 или 1е+2" можно воспользоваться sprintf для однозначного перевода в требуемый ИСХОДНЫЙ формат и затем уже по разработанному Вами алгоритму перевести это число в требуемую форму. Как подсказка - удобнее идти по символам числа справа налево. |
|||
|
||||
klem4 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 27.7.2008 Репутация: 2 Всего: 2 |
может вас на истинный путь этот набросок наведет
|
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Еще один набросок (немного дополненный пример из Perl Cookbook):
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |