Python oferece várias maneiras de arredondar números. Neste artigo, apresentarei alguns métodos para arredondar números de diferentes maneiras em Python. Isso inclui o uso das funções round
, math.ceil
e math.floor
bem como o uso do Decimal
-Aula. Também explicarei como você pode implementar suas próprias classes para personalizar o arredondamento de números.
Principais vantagens:
- Python fornece vários métodos para arredondar números.
- A função
round
arredonda um número para um número especificado de casas decimais ou para o número inteiro mais próximo. - O
math
-Biblioteca contém as funçõesmath.ceil
emath.floor
para arredondar números para cima ou para baixo. - Com o
Decimal
classe permite arredondar números decimais com alta precisão. - É possível implementar seus próprios algoritmos de arredondamento em Python.
Arredondando com a função `round` em Python
Com a função round
Você pode arredondar números para um certo número de casas decimais em Python. Você também pode especificar um número inteiro para arredondar para o número inteiro mais próximo. O comando fica assim round(Zahl, Dezimalstellen)
. Se nenhum decimal for especificado, o padrão é arredondar para o número inteiro mais próximo.
Para arredondar com a função round
Para esclarecer, vejamos um exemplo:
x = 4.5632
gerundet_auf_2_stellen = round(x, 2)
gerundet_auf_ganze_zahl = round(x)
No exemplo acima, o número x
arredondado para 2 casas decimais e o resultado passa a ser a variável gerundet_auf_2_stellen
atribuído. A função round
também é usado sem especificar as casas decimais para arredondar para o número inteiro mais próximo. O resultado está na variável gerundet_auf_ganze_zahl
salvo.
O comando round
é muito útil para arredondar números de forma rápida e fácil em Python. Nas próximas seções aprenderemos mais métodos de arredondamento em Python.
Arredondando com a biblioteca `math` em Python
Em Python, além da função `round`, também existe a opção de usar a biblioteca `math` para arredondar números para dígitos específicos. Esta biblioteca contém as funções `math.ceil` e `math.floor`, que podem ser usadas para arredondar números para cima ou para baixo.
A função `math.ceil` sempre arredonda um número para cima, ou seja, é arredondado para o próximo maior número inteiro. Isto é particularmente útil quando você deseja garantir que um número seja sempre arredondado para cima, independentemente da sua parte decimal.
Em contraste, a função `math.floor` sempre arredonda um número para baixo, ou seja, é arredondado para o próximo número inteiro menor. Esta função é útil quando se deseja garantir que um número seja sempre arredondado para baixo, independentemente da sua parte decimal.
Rodadas com `math.ceil` e `math.floor` – Exemplos:
- math.ceil(3.7) dá 4
- math.ceil(5.2) dá 6
- math.floor(3.7) retorna 3
- math.floor(5.2) retorna 5
Além das funções `ceil` e `floor`, a biblioteca `math` também fornece muitas outras funções matemáticas que podem ser úteis ao manipular números em Python.
Agora que conhecemos os fundamentos do arredondamento usando a biblioteca `math`, na próxima seção veremos a classe `Decimal`, que fornece alta precisão na representação de números decimais em Python.
Implementando seus próprios algoritmos de arredondamento em Python
Em Python você tem a opção de implementar suas próprias classes para personalizar o arredondamento dos números de acordo com sua necessidade. Uma maneira de fazer isso é usar o método mágico __round__
. Este método permite definir o arredondamento de um número para uma casa decimal específica. Aqui está um exemplo de como fazer isso __round__
O método pode ser implementado em sua própria classe:
class MeinRunderKlasse: def __init__(self, zahl): self.zahl = zahl def __round__(self, dezimalstellen): faktor = 10 ** dezimalstellen gerundete_zahl = round(self.zahl * faktor) / faktor return gerundete_zahl
Neste exemplo usamos o
round
-Função para arredondar o número. Primeiro multiplicamos o número por um fator que depende do número de casas decimais para arredondar. Em seguida, dividimos o número arredondado pelo fator para retornar o resultado.Outra maneira de implementar seus próprios algoritmos de arredondamento é usar o algoritmo “Round half up”. Este algoritmo arredonda um número para o número inteiro mais próximo. Aqui está uma implementação do algoritmo “Round half up”:
def round_half_up(zahl): gerundete_zahl = int(zahl + 0.5) return gerundete_zahl
Este algoritmo primeiro incrementa o número em 0,5 e depois o converte em um número inteiro. Isso arredondará o número para o número inteiro mais próximo.
Arredondando números decimais em Python
O
decimal
módulo em Python fornece um método preciso para arredondar números decimais. Permite criar números decimais com alta precisão e oferece diversos métodos de arredondamento.Para criar um número decimal em Python, o
Decimal
função pode ser usada. Isso pega um número como argumento e o arredonda para o número desejado de casas decimais.O método pode ser usado para arredondar para um número inteiro
quantize(Decimal('0'), rounding=ROUND_HALF_UP)
ser usado. Isso arredonda o número decimal para o número inteiro mais próximo. Para arredondar para duas casas decimais, pode-se usar o métodoquantize(Decimal('0.00'), rounding=ROUND_HALF_UP)
ser usado.É importante observar que a divisão de ponto flutuante tem diferenças no Python 2 e no Python 3. Para obter resultados consistentes, o
from __future__ import division
A instrução deve ser colocada no início do código. Isso faz com que a divisão de ponto flutuante seja usada em ambas as versões do Python.Perguntas frequentes
Quais funções existem em Python para arredondar números?
Python oferece várias maneiras de arredondar números. Isso inclui as funções `round`, `math.ceil`, `math.floor` e o uso da classe `Decimal`.
Como faço para usar a função `round` em Python?
A função `round` pode ser usada para arredondar números em Python para um número específico de casas decimais. Você também pode especificar um número inteiro para arredondar para o número inteiro mais próximo. O comando se parece com isto: `round(number, decimals)`. Se nenhum decimal for especificado, o padrão é arredondar para o número inteiro mais próximo.
Que outros métodos de arredondamento a biblioteca `math` fornece em Python?
A biblioteca `math` contém as funções `math.ceil` para arredondamento e `math.floor` para arredondamento de números.
Como posso implementar meus próprios métodos de arredondamento em Python?
Em Python você pode implementar suas próprias classes e usar o método mágico `__round__` para definir seu próprio método de arredondamento. Você também pode implementar o algoritmo de arredondamento “Round half up”, que arredonda um número para o número inteiro mais próximo.
Como arredondar decimais em Python?
Usando o módulo `decimal` em Python, pode-se criar números decimais de alta precisão e arredondá-los para um número específico de casas decimais. O módulo `decimal` fornece vários métodos de arredondamento que podem ser aplicados.