Format saindo sem os digitos

2 respostas Resolvido
python
A

Bom dia!

Pessoal estou com um problema.
Tenho o seguinte código

a = float(input())
b = float(input())
avg = ((a * 3.5) + (b * 7.5)) /11
print(f'MEDIA = {avg :2.5}')

Nele todos os outputs estão saindo corretamente, menos quando eu uso 10 e 10 de parametro, ele não imprime as casas decimais, imprime apenas 10.0

Alguem poderia me ajudar?

Obrigado!

2 Respostas

hugokotsubo
Solucao aceita

No formato você tem que colocar “f” depois da quantidade de casas decimais:

print(f'MEDIA = {avg:2.5f}')

Assim ele imprime 10.00000 corretamente.

Sugiro que consulte a documentação para saber mais sobre as opções de formatação. Aí você vai ver que 2.5f significa “usar 2 posições e 5 casas decimais”, o que não faz sentido, pois as 5 casas decimais já ocupam mais que 2 posições. Ou seja, poderia ser apenas assim:

print(f'MEDIA = {avg:.5f}')

Se quer usar o primeiro número para definir um tamanho total, sugiro que use algum valor maior que 9 (pois você já tem 5 casas decimais,o ponto e no seu caso, os 2 dígitos do número 10, o que já dá 8 posições). Exemplos:

avg = 10
print(f'{avg:2.5f}') # tamanho menor que 8, não faz diferença
print(f'{avg:10.5f}')
print(f'{avg:15.5f}')
print(f'{avg:20.5f}')

A saída do código acima é:

10.00000
  10.00000
       10.00000
            10.00000
A

Muito obrigado!

Criado 23 de outubro de 2020
Ultima resposta 29 de out. de 2020
Respostas 2
Participantes 2