Bóson Treinamentos em Ciência e Tecnologia

Como arredondar números em Python

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:

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

 

Sair da versão mobile