14.1 FORMATAÇÃO DO PRINT |
Para termos uma saída, impressa ou gravada, formatada, usamos printf .
(Se você não se lembra que gravamos um registro "printando", reveja a aula 6).
A fórmula é:
No lugar de formatação temos:
$x = "abcd"; printf "%8s",$x;Serão printados: quatro brancos mais abcd (bbbbabcd).
Com números:
$y = 29.40; printf "%8.3f",$y;Serão printados dois brancos e o número com TRÊS decimais (zero à direita) - bb29.400
IMPORTANTE: Não se esqueça
de que a formatação aparece entre aspas!
14.2 DECIMAIS BRASILEIROS |
Pelo visto no capítulo anterior você poderia pensar que, para transformar um número com o separador ponto em um string semelhante com o separador vírgula bastaria fazer:
$x = 8.69; $x=~s/./,/;Lêdo engano, como diria Machado de Assis.
O resultado seria:
,.68999999 etc.Isso porque:
Para resolver o problema de substituir O PONTO e não haver confusão com caractere curinga temos de simbolizar o nosso ponto por: \ . (barra invertida-ponto).
Assim, para colocarmos numa variável $xbras aquele $x com o separador brasileiro teríamos que fazer:
$xbras = sprintf("%4.2f",$x); $xbras=~s/\./,/;Então teríamos em $xbras: 8,69
É meio complicado mesmo, mas funciona!
DICA: Arquive sempre os valores numéricos contendo decimais (preço, por exemplo) com o separador americano.Converta na entrada e desconverta na saída.