Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Форматирование цены
 
 автор: школьник   (20.12.2006 в 15:03)   письмо автору
 
 

Пример:
100,25
152,9
78

необходимо привести к такому виду
100,25
152,90
78,00

подскажите пожалуйста как построить такое регулярное выражение, чтобы проверяло это правило и делало изменение.

   
 
 автор: cheops   (20.12.2006 в 15:14)   письмо автору
 
   для: школьник   (20.12.2006 в 15:03)
 

Это именно строки или в качестве примера выступают числа с плавающей точкой?

   
 
 автор: Саня   (20.12.2006 в 19:36)   письмо автору
 
   для: cheops   (20.12.2006 в 15:14)
 

Функции sprintf() всё равно, число или строка. Тем более 100,2 не является float в понятии php, так как разделитель должен быть точкой. Да и любое число можно без труда привести к string.
<?
$v
[] = "100,25";
$v[] = "152,9";
$v[] = "2,5";
$v[] = "78";
for ( 
$i 0$i count($v); $i++ )
  
$v[$i] = str_replace("."","str_replace(",""."sprintf("%.2f"$v[$i])));

print_r($v);

   
 
 автор: школьник   (20.12.2006 в 22:44)   письмо автору
 
   для: Саня   (20.12.2006 в 19:36)
 

В этом примере числа после запятой преобразуются в нули, было бы клево чтобы 100,2 выглядело 100,20, а не 100,00.

   
 
 автор: Саня   (20.12.2006 в 23:31)   письмо автору
 
   для: школьник   (20.12.2006 в 22:44)
 

<?
$v
[] = "100,25";
$v[] = "152,9";
$v[] = "2,5";
$v[] = "78";
for ( 
$i 0$i count($v); $i++ )
  
$v[$i] = str_replace("."","sprintf("%.2f"str_replace(",""."$v[$i])));
print_r($v);

Перепутал вложенность str_replace(). А вы могли бы проанализировать пример и самостоятельно исправить, а не ждать пока дадут правильный вариант!

   
 
 автор: школьник   (21.12.2006 в 11:38)   письмо автору
 
   для: Саня   (20.12.2006 в 23:31)
 

Я только опыт набираю, так сказать "новичок".
Спасибо за помощь!

   
 
 автор: школьник   (24.12.2006 в 09:13)   письмо автору
 
   для: Саня   (20.12.2006 в 19:36)
 

Еще очень прошу подсказать как разделить тысячи пробелами
например
100,52
100 000,78
1 000 000,90

   
 
 автор: ddhvvn   (24.12.2006 в 09:42)   письмо автору
 
   для: школьник   (24.12.2006 в 09:13)
 

>Еще очень прошу подсказать как разделить тысячи пробелами
>например
>100,52
>100 000,78
>1 000 000,90

<? 
 $v
[] = 100,52;
 
$v[] = 100 000,78;
 
$v[] = 1 000 000,90;

 
$v str_replace(","" "$v);

 
print_r($v);
?>

   
 
 автор: Trianon   (24.12.2006 в 11:36)   письмо автору
 
   для: ddhvvn   (24.12.2006 в 09:42)
 


 $v[] = 100,52; 
 $v[] = 100 000,78; 
 $v[] = 1 000 000,90; 

Издеваемся помаленьку, да? :)


To школьник:
посмотрите функцию number_format()

   
 
 автор: ddhvvn   (24.12.2006 в 14:19)   письмо автору
 
   для: Trianon   (24.12.2006 в 11:36)
 

Упс :) Торможу... :)))

   
 
 автор: школьник   (25.12.2006 в 00:49)   письмо автору
 
   для: Trianon   (24.12.2006 в 11:36)
 

Круто,
$PriceR = number_format($line['PriceR'], 2, ',', ' ');
решил все мои вопросы!

Спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования