1
resposta

numeros decimais multiplicado por numeros decimais

Boa noite, fazendo alguns exercícios de python para criar um conversor de medidas parece que algo esta dando errado pois com esse codigo:

m = float(input('Digite o valor em metros para a converção: '))
km = m * 10 ** -3
hm = m * 10 ** -2
dam = m * 10 ** -1
dm = m * 10 ** 1
cm = m * 10 ** 2
mm = m * 10 ** 3
print('-'*30)
print(f'{m}m equivale ha:')
print('-'*30)
print(f'{km} kilometros.')
print(f'{hm} Hectõmetros.')
print(f'{dam} Decâmetros.')
print(f'{dm} Decímetro.')
print(f'{cm} Centimetro.')
print(f'{mm} Milimetro.')
print('-'*30)

da esse resultado quando vou medir com o valor 0.1m

Digite o valor em metros para a converção: 0.1
------------------------------
0.1m equivale ha:
------------------------------
0.0001 kilometros.
0.001 Hectõmetros.
0.010000000000000002 Decâmetros.
1.0 Decímetro.
10.0 Centimetro.
100.0 Milimetro.
------------------------------

Process finished with exit code 0

Hora a parte dos kilomentros ou Hectõmetros ou Decâmetros da errado e aparece esse numero maluco

Estou usando o pycharm

1 resposta

Oi Marlon, tudo bem?

Não sei se entendi muito bem a sua dúvida, seria este número gigante?

0.010000000000000002

Caso seja, este não é um bug no Python e também não é um bug no seu código, se trata de um problema inerente a própria natureza de números com ponto flutuante. Você pode ver mais detalhes sobre isto neste link.

O que você pode fazer é limitar o número de casas decimais que aparecem, fazendo algo como:

print(f'{dam:.4f} Decâmetros.')

Neste caso, irá mostrar apenas 4 números após a vírgula. Resultado: 0.0100

Espero ter ajudado. Abraços e bons estudos!