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!
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