Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > Perl

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 05.06.2002, 21:16
Gandalf вне форума Посмотреть профиль Отправить личное сообщение для Gandalf Найти все сообщения от Gandalf
  № 1  
Gandalf

Регистрация: Jul 2000
Адрес: Kitchener/Canada
Сообщений: 114
Отправить сообщение для Gandalf с помощью ICQ
По умолчанию регулярные выражения ?!

Код:
#########################################################################################
# formating numbers like"12323123.9800"
# into "12,323,123.98"
#########################################################################################
		$ln=length($price55);			# length of our number
		$ln-=2;					# length of the number waht we need
		$price55=substr $price55,0,$ln;		# cutting string (String,position to start from,number of chars to display
		$price55=reverse $price55;		# reverse for regular expr
		$price55=~s/(\d{3})/$1,/gi;		# regular (finding 3 numbers and replacing with same 3 nums + "," at the end of them
		$price55=reverse $price55;		# reverse back , cause we are done
Всем привет,
беру номер ( денежную еденицу) из mdb даёт она мне число в формате"2323123.9800" , надо обрезать 2 последних нуля и поставить "," после каждых 3 чисел если за ними идёт четвёртое ( код выше делает почти всё из этого ) как сделать проверку если за 3-я цифрами идёт ещё одна ???!
а то получаеться из "500.8900" ->",500.89"

Старый 06.06.2002, 05:17
Fouly вне форума Посмотреть профиль Отправить личное сообщение для Fouly Найти все сообщения от Fouly
  № 2  
Fouly

Регистрация: Dec 1999
Сообщений: 258
Напиши так:
$price55=~s/(\d{3})(?=\d)/$1,/g;

P.S.
Модификатор 'i' тут незачем.

Старый 06.06.2002, 19:41
Gandalf вне форума Посмотреть профиль Отправить личное сообщение для Gandalf Найти все сообщения от Gandalf
  № 3  
Gandalf

Регистрация: Jul 2000
Адрес: Kitchener/Canada
Сообщений: 114
Отправить сообщение для Gandalf с помощью ICQ
спасибо

Старый 07.06.2002, 13:22
  № 4  
Fyn
Guest

Сообщений: n/a
Можно сделать код ещё короче:

Код:
$price55 = sprintf "%.2f", $price55;
$price55=reverse $price55;
$price55 =~ s/(\d{3})(?=\d)/$1,/g; 
$price55=reverse $price55;


Последний раз редактировалось Fyn; 07.06.2002 в 13:31.
Создать новую тему   Часовой пояс GMT +4, время: 05:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 05:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.