2013-09-30 2 views
2

Я использую это в настоящее времяБыстрый способ печати отрицательного значения доллара

$Profit = -8.2 ; 
printf("%8s",sprintf("\$%0.2f",$Profit)). 

который печатает

$-8.2 

Есть быстрый легкий способ печати

-$8.2 
+1

Возможно, вам стоит попробовать ['Locale :: Currency :: Format'] (http://search.cpan.org/perldoc?Locale%3A%3ACurrency%3A%3AFormat). – TLP

ответ

6
sprintf("%s\$%0.2f", $Profit >=0 ? "" : "-", abs($Profit)) 

5.14+ :

sprintf("%0.2f", $Profit) =~ s/^-?\K/\$/r 
+0

Как работает решение 5.14+? Что такое '\ K'? – Jean

+2

@Jean '\ K' сохраняет предыдущий матч из согласованной подстроки. Это, по существу, переменная длина. Сам '\ K' немного старше 5.14; здесь особая вещь - '/ r', которая возвращает замененную строку вместо изменения оригинала. – amon

+0

теряют^\ перед -; иначе просто то, что я собирался сказать :) – ysth

Смежные вопросы