3
respostas

Dúvida na Interpolação de string

No código abaixo, o resultado da saída não deveria ser "R$ 0000004.11", pois dentro das { } está-se dizendo que antes do ponto devem-se ter 7 algarismos?

"R$ {:07.2f}.format(4.11)"
3 respostas

Olá Paulo, tudo bem?

Nesse caso, a formatação indica que devem ter sete algarismos no final.

Isso é, quatro números antes do pontos, o ponto mais os dois números após a vírgula.

Paulo,

Acho que deve ser um bug, pois, testei em várias versões do Python3 e não funcionou direito, quando coloquei :011.2f , ele imprimiu com 7 zeros antes do float. Engraçado!!

>>> f = 3.65
>>> '{}'.format(f)
'3.65'
>>> '{:.10f}'.format(f)
'3.6500000000'
>>> '{:.20f}'.format(f)
'3.64999999999999991118'
>>> '{:07.2f}'.format(f)
'0003.65'
>>> '{:07.2f}'.format(3.65)
'0003.65'
>>> 'R$ {:07.2f}'.format(3.65)
'R$ 0003.65'
>>> 'R$ {:011.2f}'.format(3.65)
'R$ 00000003.65'
>>>

oi Paulo,

o seu código "R$ {:07.2f}.format(4.11)" diz que o numero terá 7 algarismos AO TODO.

ou Seja, já contando com o ponto e as duas casas decimais, que totalizam 3 caracteres, sobrando entao 4 algarismos à esquerda do ponto.

então, a saída será R$0004.11beleza????

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software