Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

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

 

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

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

тема: Как работает sprintf?
 
 автор: tAleks   (19.11.2006 в 21:53)   письмо автору
 
 

Прочитал мануал по этой функции, но че-то все равно я не догоняю.... :(


$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted выдаст "123.10"


Вто что здесь означает это: "%01.2f"?

Что такое "%" - понятно, что такое "f" - понятно, "2" - кол-во знаков после запятой, тоже понятно.

А вот что такое "01." - не догоняю.

Объясните, плииз, на человечьем языке...

   
 
 автор: Trianon   (20.11.2006 в 10:05)   письмо автору
 
   для: tAleks   (19.11.2006 в 21:53)
 

не 01. и 2 а 0 1 и .2
.2 - действительно 2 знака после десятичной точки.
1 - описатель ширины - минимум один символ в результате.
0 - описатель заполнения - недостающие позиции заполнять нулями.

   
 
 автор: tAleks   (21.11.2006 в 16:42)   письмо автору
 
   для: Trianon   (20.11.2006 в 10:05)
 

Спасибо, вроде более понятно, но вот такой еще вопрос.

Из мануала:

Каждый описатель прреобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они здесь перечислены):


1. Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью '. См. примеры ниже.

2. Необязательный описатель выравнивания, определяющий выранивание влево или вправо. По умолчанию выравнивается вправо, - используется для выравнивания влево.

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

4. Необязательный описатель точности, определяющий, сколько десятичных разрядов отображать для чисел с плавающей точкой. Имеет смысл только для числовых данных типа float. (Для форматирования чисел удобно также использовать функцию number_format().)

5. Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:


2. Необязательный описатель выравнивания, определяющий выранивание влево или вправо. По умолчанию выравнивается вправо, - используется для выравнивания влево.

Т.е. на втором месте должен быть описатель выравнивания, т.е. в данном случае - "1". Но вы сказали что "1", это кол-во знаков врезультате.

   
 
 автор: Trianon   (21.11.2006 в 17:02)   письмо автору
 
   для: tAleks   (21.11.2006 в 16:42)
 

1.Слово "необязательный" означает, что соответствующий элемент может и отсутствовать.
Поэтому на втором месте не должно быть ничего конкретного.

2. В реализации php описатель заполнения и описатель выравнивания могут следовать в любом порядке. В стандартной библиотеке C, откуда эта функция пришла, 0 описателя заполнения мог стоять только непосредственно перед описателем ширины поля.

   
Rambler's Top100
вверх

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