05 julho 2016

Trabalhando com divisão de números inteiros com resultados decimais em Python 2

Essa é uma questão simples para quem já tem uma certa noção de Python ou para quem já migrou de vez para Python 3, mas para quem está começando e usa Python 2 ou precisa dar suporte para essa versão, este artigo pode ajudar.

Em Python 2 quando se faz divisões em que os operandos são inteiros o interpretador do Python automaticamente trunca a parte fracionada retornando apenas o valor inteiro. Exemplo:

>>> 3 / 4
0

Veja que ele retornou um inteiro e o que queremos é o valor fracionado que é:

0.75

Para resolver isso, precisamos explicitamente dizer que um dos operandos é um decimal(float) e a duas formas de fazer isso. Podemos em um dos operados colocar um nº.0 ou envolver com a função float(). Exemplo com as duas forma:

>>> 3 / 4.0
0.75

ou

>>> 3/ float(4)
0.75

Essa questão já foi resolvida no Python 3, então lá não a necessidade de transformar nenhum valor em float para receber um valor do mesmo tipo.


Este texto foi originalmente publicado no Medium e posteriormente migrado para este site.