Зырь ослина, у очкастого кролика гламурные черные ботинк мужские от куда он их достал.)
Глава 11: Форматы.
11.4 Еще о поледержателяж
11.4.2 Числовые поля
Следующий тип поледержателя — числовое поле с фиксированной десятичной запятой, полезное для больших финансовых отчетов. Это поле также начинается со знака @; за ним следует один или более знаков # с необязательной точкой (она обозначает десятичную запятую). Опять-таки, знак @ считается одним из символов поля. Например:
format MONEY =
Assets: @#W#.*” Liabilities: @#*”##.*# Net: @t”##*.*#
$assets, $1iabilities, $assets-$1iabilities
Эти три числовых поля предусматривают шесть знаков слева от десятичной запятой и два справа (в расчете на суммы в долларах и центах). Обратите внимание на то, что в формате используется выражение — это абсолютно допустимо и встречается очень часто.
Ничего оригинального в Perl больше нет: вам не удастся установить формат с плавающей запятой для вывода значений денежных сумм, нельзя также заключить отрицательные значения или что-нибудь подобное в квадратные скобки. Для этого придется писать отдельную программу, например:
format MONEY =
Assets: @“““<“ Liabilities: @““““ Net: @““<““
&cool($assets,10), scool($1iab,9), $cool($assets-$1iab,10)
sub pretty {
my($n,$width) = @_;
$width -—2; # учтем отрицательные числа
$n = sprintf("%.2f",$n); # sprintf описывается в одной из следующих глав
if ($n < 0) {
return sprintf ("[t$width.2f]", -$n); # отрицательные числа
# заключаются в квадратные скобки
} else {
return sprintf (" %$width.2f ", $n); # положительные числа выделяются ^пробелами
}
}
## body of program:
$assets = 32125.12;
$1iab = 45212.15;
write (MONEY);
Назад | Вперед
Содержание (общее) | Содержание раздела | Содержание подраздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|