Como arredondar números em Python

Arredondamento de valores numéricos em Python

Uma tarefa comum ao realizarmos cálculos em um script Python é a necessidade de arredondar números de ponto flutuante para uma quantidade determinada de casas decimais. Comumente, o arredondamento é efetuado simplesmente descartando-se a parte decimal (fracionária) de um valor numérico, retornando somente a parte inteira. Mas também é possível efetuar o arredondamento preservando um número determinado de casas decimais, se for necessário.

Neste tutorial vou mostrar algumas maneiras de efetuar o arredondamento numérico em Python, usando funções built-in e de bibliotecas da linguagem.

É importante frisar que, ao arredondar um número de ponto flutuante para um valor inteiro, poderá haver perda de precisão, pois o valor presente nas casas decimais é descartado.

Funções de arredondamento de valores em Python

Em Python existem três funções empregadas para efetuar o arredondamento de números de ponto flutuante:

  • Função built-in round(): Arredonda para cima ou para baixo
  • Método math.floor(): Arredonda para baixo, até o inteiro mais próximo
  • Método math.ceil(): Arredonda para cima, até o inteiro mais próximo

Vejamos exemplos de cada método.

Arredondar valores com função round()

Com a função round() podemos arredondar um número de float para int, ou ainda mantê-lo como float, definindo um número de casas decimais desejado.

Exemplos:

1. Arredondar o valor 56,45 para inteiro

round(56.45)

# Retorna: 56

2. Arredondar o valor 45,56 para inteiro

round(45.56)

# Retorna: 46

Como pudemos perceber, valores decimais até 0.5 são arredondados para baixo, e valores decimais a partir de 0.5 são arredondados para cima. Se o número for negativo, o comportamento é o inverso:

3. Arredondar o valor -56,45 para inteiro

round(-56.45)

# Retorna: -56

4. Arredondar o valor -45,56 para inteiro

round(-45.56)

# Retorna: -46

Podemos também arredondar um número com round() até um número especificado de casas decimais. Para isso, devemos fornecer como argumento para a função o número de casas decimais desejadas, logo após o valor a ser arredondado. Veja o exemplo a seguir:

5. Arredondar o valor 45,56 para inteiro com uma casa decimal

round(45.56, 1)

# Retorna: -45.6

Arredondar números em Python com o método math.floor()

Esse método retorna o inteiro mais próximo que seja menor ou igual ao valor do argumento. Em outras palavras, arredonda o número para baixo, independente do valor presente nas casas decimais (floor = chão, em inglês).

Para usar eese método, precisamos importar a biblioteca math no script Python. Veja o exemplo:

6. Arredondar o valor 45,56 para inteiro com math.floor()

import math
math.floor(45.56)

# Retorna: 45

Note que, mesmo o valor decimal sendo superior a 0.5, o número foi arredondado para baixo.

Arredondar valores com método math.ceil()

Esse método retorna o inteiro mais próximo que seja maior ou igual ao valor do argumento. Em outras palavras, arredonda o número para cima, independente do valor presente nas casas decimais (ceil = teto, em inglês).

Para usar esse método, também precisamos importar o módulo math no script Python. Veja o exemplo:

7. Arredondar o valor 56,45 para inteiro com math.ceil()

import math
math.ceil(56,45)

# Retorna: 57

Note que, mesmo o valor decimal sendo menor do que 0.5, o número foi arredondado para cima.

Resumo

Em Python podemos arredondar valores numéricos de ponto flutuante para inteiro de três formas: com a função round(), que arredonda valores para cima ou para baixo dependendo do valor presente nas casas decimais, e com os métodos math.floor() e math.ceil(), que arredondam os valores para baixo e para cima, respectivamente, independente do valor presente na parte decimal do número.

Referências

 

Sobre Fábio dos Reis (1364 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*