Я использую это в настоящее времяБыстрый способ печати отрицательного значения доллара
$Profit = -8.2 ;
printf("%8s",sprintf("\$%0.2f",$Profit)).
который печатает
$-8.2
Есть быстрый легкий способ печати
-$8.2
Я использую это в настоящее времяБыстрый способ печати отрицательного значения доллара
$Profit = -8.2 ;
printf("%8s",sprintf("\$%0.2f",$Profit)).
который печатает
$-8.2
Есть быстрый легкий способ печати
-$8.2
sprintf("%s\$%0.2f", $Profit >=0 ? "" : "-", abs($Profit))
5.14+ :
sprintf("%0.2f", $Profit) =~ s/^-?\K/\$/r
Как работает решение 5.14+? Что такое '\ K'? – Jean
@Jean '\ K' сохраняет предыдущий матч из согласованной подстроки. Это, по существу, переменная длина. Сам '\ K' немного старше 5.14; здесь особая вещь - '/ r', которая возвращает замененную строку вместо изменения оригинала. – amon
теряют^\ перед -; иначе просто то, что я собирался сказать :) – ysth
Возможно, вам стоит попробовать ['Locale :: Currency :: Format'] (http://search.cpan.org/perldoc?Locale%3A%3ACurrency%3A%3AFormat). – TLP