Pular para o conteúdo principal

Como arredondar um número para cima em Python

Descubra três técnicas simples para arredondar números em Python: usando math.ceil() do módulo math, usando o módulo decimal e o NumPy.
Actualizado 29 de jul. de 2024  · 7 min de leitura

O Python, por ser uma linguagem de programação especialmente versátil, oferece muitas técnicas diferentes para arredondar números e arredondamentos em geral. O arredondamento para cima é uma técnica de programação obrigatória, especialmente para pessoas que trabalham com finanças ou estatística. Os métodos a seguir são praticamente os mesmos para muitas aplicações práticas, mas há algumas diferenças sutis e importantes. Neste artigo, mostrarei a você vários métodos de arredondamento de números e, em seguida, discutirei as diferenças. 

Se você é um aspirante a analista de dados ou cientista de dados, recomendo enfaticamente que faça o curso Introduction to Python da DataCamp para começar a programar em Python. Você também poderá consultar a Python Cheat Sheet for Beginners.

Resposta rápida: Como arredondar em Python

A função math.ceil() do módulo math oferece um método simples para você arredondar um número em Python. Essa técnica garante que o número seja sempre arredondado para o próximo número inteiro maior que o original. O código a seguir imprime 4.

# Import the math module to access math.ceil() function
import math
number = 3.14
rounded_up = math.ceil(number)
print(rounded_up)

Entendendo os fundamentos do arredondamento

O arredondamento de números envolve o ajuste dos dígitos para fornecer um valor aproximado. Esse conceito é fundamental para simplificar os números e facilitar o trabalho com eles. Os casos de uso comuns para arredondamento de números incluem o seguinte:

  • Cálculos financeiros: O arredondamento para cima é frequentemente usado em cálculos financeiros para garantir estimativas conservadoras. Por exemplo, ao calcular taxas de juros ou impostos, o arredondamento para o centavo mais próximo garante que os valores não sejam subestimados.
  • Análise de dados e estatística: Os relatórios de dados geralmente seguem convenções específicas para coisas como rotular intervalos de confiança e informar valores p. Isso ocorre porque a precisão desnecessária pode distrair você. 
  • Codificação e algoritmos: As funções de arredondamento são usadas para controlar o nível de precisão nos cálculos, o que pode ser crucial para o desempenho e para evitar erros de ponto flutuante.

É importante lembrar que, se você arredondar os números antes de fazer os cálculos, os resultados serão alterados e, às vezes, as alterações serão mais significativas ou surpreendentes do que você espera. Como o arredondamento envolve o ajuste de números para valores aproximados, os erros se acumulam, especialmente ao lidar com grandes conjuntos de dados. Se você arredondar todos os números antes de multiplicar, o resultado provavelmente será maior do que se você tivesse usado os números originais. Isso ocorre porque o fato de cada número ser ligeiramente maior aumenta o produto total. 

Por outro lado, se você arredondar todos os números antes de realizar a divisão, o impacto pode ser diferente, dependendo se o dividendo ou o divisor está sendo arredondado. Em ambos os casos, arredondar para cima antes de realizar operações matemáticas pode afetar os resultados de forma surpreendente se você não for cuidadoso. 

Métodos para arredondar um número para cima em Python

O Python usa o módulo math, as bibliotecas NumPy e Pandas para oferecer diferentes métodos de arredondamento de números.

Arredondar para cima usando o módulo de matemática

A função math.ceil() de math é usada para arredondar um número para o inteiro mais próximo. A sintaxe é mostrada abaixo.

# Import the math module to access math.ceil() function
import math
math.ceil(number)

Ao arredondar para cima um número positivo usando a função math.ceil(), a saída retorna um número inteiro maior que o número original. O código a seguir imprime 4.

# Import the math module to access math.ceil() function
import math
number = 3.14
rounded_up = math.ceil(number)
print(rounded_up)

Da mesma forma, ao arredondar números negativos, a função math.ceil() retorna um número inteiro negativo maior que o valor original. O código a seguir imprime -3.

# Import the math module to access math.ceil() function
import math
number = -3.14
rounded_up = math.ceil(number)
print(rounded_up)

Arredondar para cima usando o módulo decimal para obter precisão

O módulo decimal do Python é útil para arredondar números flutuantes para casas decimais precisas. É importante para obter um arredondamento decimal preciso, especialmente em cálculos financeiros.

Você pode usar o módulo decimal para criar objetos Decimal a partir de cadeias de caracteres, inteiros e números de ponto flutuante. Entretanto, a criação de objetos Decimal usando números de ponto flutuante não é recomendada devido a possíveis problemas de precisão. Os exemplos abaixo mostram os diferentes métodos para criar objetos Decimal.

# Import the decimal module to access Decimal function
from decimal import Decimal
d1 = Decimal("3.14159")
print(d1)
# Import the decimal module to access Decimal function
from decimal import Decimal
d3 = Decimal(3.14159)
print(d3)

O módulo decimal oferece os seguintes métodos para arredondar números:

  • ROUND_UP: Você sempre arredonda para fora do zero.

  • ROUND_CEILING: Sempre em direção ao infinito positivo.

Com o módulo decimal, você pode arredondar os números para a precisão desejada usando o método .quantize(). No exemplo abaixo, o método ROUND_UP foi usado para arredondar o decimal para o número inteiro mais próximo de zero. Você pode conseguir isso indicando 1 no método Decimal para mostrar que deseja arredondar para um valor inteiro.

# Import the Decimal class and the ROUND_UP rounding mode from the decimal module
from decimal import Decimal, ROUND_UP

# Create a Decimal object from a string representation of a floating-point number
d = Decimal("-3.14159")

# Round the Decimal object to nearest integer using the ROUND_UP rounding mode
rounded_d_int = d.quantize(Decimal("1"), rounding=ROUND_UP)
print(rounded_d_int) # prints -4

O método ROUND_CEILING do módulo Decimal também permitirá que você arredonde um número para um número inteiro maior.

# Import the Decimal class and the ROUND_CEILING rounding mode from the decimal module
from decimal import Decimal, ROUND_CEILING

# Create a Decimal object from a string representation of a floating-point number
d = Decimal("-3.14159")

# Round the Decimal object to nearest integer using ROUND_CEILING rounding mode
rounded_d_int = d.quantize(Decimal("1"), rounding=ROUND_CEILING)
print(rounded_d_int) # prints -3

Arredondamento de matrizes com o NumPy

O NumPy é uma biblioteca poderosa em Python que ajuda você a realizar operações em grandes matrizes e vetores. Ele é essencial na ciência de dados devido à sua eficiência e conveniência de cálculo. Uma das operações oferecidas pelo NumPy é o arredondamento de números. Vejamos o método np.ceil() que pode ser usado para arredondar os elementos de uma matriz para o número inteiro mais próximo. A sintaxe do site np.ceil() é simples e é mostrada abaixo.

np.ceil(array)

O exemplo abaixo mostra como arredondar os elementos de uma matriz usando o método np.ceil().

# Import the numpy module and alias it as np for convenience
import numpy as np

# Create a numpy array with floating-point numbers
array = np.array([3.14, 2.72, 1.61])

# Apply the ceiling function to each element in the numpy array, rounding each number up to the nearest integer
rounded_up_array = np.ceil(array)
print(rounded_up_array) # 4, 3, 2

Comparação resumida

Aqui está uma tabela que compara diferentes métodos de arredondamento em Python:

Método Pontos fortes Pontos fracos Melhor caso de uso
math módulo Oferece opções específicas de arredondamento com math.ceil() Requer o módulo de matemática e não é adequado para cenários complexos de arredondamento. Cálculos que envolvem arredondamentos específicos, incluindo arredondamentos para cima.
decimal módulo Alta precisão e exatidão Complexo de usar Cálculos financeiros
NumPy Eficaz para arredondar matrizes usando np.ceil() Requer a biblioteca NumPy Análise de dados em grandes conjuntos de dados.

Como lidar com o viés de arredondamento

O viés de arredondamento refere-se à distorção de valores numéricos ao usar métodos de arredondamento. Isso geralmente ocorre porque o arredondamento de um número o ajusta a um valor aproximado maior ou menor que o valor original. Assim, o viés de arredondamento pode diminuir a precisão e a exatidão, especialmente em análises estatísticas e cálculos financeiros.

Arredondamento da metade para cima

O método de arredondamento de metade para cima envolve o arredondamento de um número para cima se ele estiver exatamente no meio do caminho entre dois valores possíveis. Por exemplo, 2,5 será arredondado para 3. A vantagem desse método é que ele é fácil de entender e consistente com o que é ensinado com mais frequência nas escolas. No código a seguir, criamos uma função para verificar se um decimal é exatamente 0,5 e, se for, arredondamos para cima; caso contrário, arredondamos para baixo.

# Create a function to check if a decimal is exactly 0.5 and round up if true
def round_half_up(n):
    if n - int(n) == 0.5:
        return int(n) + 1
    return round(n)
# Example usage
example_number = 2.5
rounded_number = round_half_up(example_number)
print(rounded_number)

Arredondamento da metade para o par (arredondamento dos banqueiros)

O arredondamento da metade para o par, ou arredondamento dos banqueiros, é um método de arredondamento usado para minimizar a distorção. Quando um número está exatamente na metade do caminho entre dois números inteiros, ele é arredondado para o número inteiro par mais próximo. Esse método ajuda a equilibrar o processo de arredondamento, evitando uma tendência consistente para cima ou para baixo.

Se você omitir o segundo argumento, o método incorporado round arredonda a metade para igualar os números por padrão.

# Python round() method to round half to even
print(round(2.5)) # 2
print(round(3.5)) # 4
print(round(-2.5)) # -2

Conclusão

O arredondamento de números é uma técnica importante na programação, pois facilita o manuseio de valores numéricos. Ela também é essencial em análises estatísticas e cálculos financeiros, simplificando os valores para melhorar a legibilidade e a interpretação. É importante aprender os diferentes métodos de arredondamento e escolher os métodos adequados com base nos requisitos específicos da tarefa. 

Como analista de dados, recomendo que você pratique os diferentes métodos de arredondamento para entender sua aplicação prática em diferentes tarefas. Recomendo que você experimente os programas de habilidades Python Fundamentals e Python Programming da DataCamp para aprimorar suas habilidades de programação. Por fim, o programa de carreira Python Developer ajudará você a aprender habilidades avançadas em Python para se destacar entre outros desenvolvedores.

Perguntas frequentes

Como você arredonda para o int mais próximo em Python?

Você pode usar a função math.ceil() do módulo math para arredondar para o int mais próximo em Python.

O que é tendência de arredondamento?

O viés de arredondamento ocorre quando há valores imprecisos devido à distorção dos números durante o arredondamento.

O que é a metade redonda para par?

O método de arredondamento da metade para o par, ou arredondamento do banqueiro, envolve o arredondamento de um número exatamente na metade do caminho entre dois números inteiros para o número inteiro par mais próximo.

Qual é a diferença entre arredondamento e truncamento?

O arredondamento de um número envolve o ajuste de um número com base no valor da parte fracionária. O truncamento de um número remove a parte fracionária do número sem arredondamento.

E se eu quiser arredondar para baixo em vez de arredondar para cima em Python?

Se quiser arredondar para baixo em vez de arredondar para cima em Python, você pode usar a função math.floor(). Enquanto math.ceil() arredonda um número para o inteiro mais próximo, math.floor() arredonda um número para o inteiro mais próximo. 

Temas

Aprenda Python com a DataCamp

Certificação disponível

curso

Introdução ao Python

4 hr
5.6M
Em apenas quatro horas, você dominará os conceitos básicos de análise de dados com Python. Neste curso on-line, você conhecerá a interface Python e explorará os pacotes populares.
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado
5 Python Challenges

blog

5 desafios Python para desenvolver suas habilidades

Aumente o nível de suas habilidades em Python com estes cinco desafios de codificação em Python. Faça um teste para ver se você consegue completar um em uma semana!
DataCamp Team's photo

DataCamp Team

5 min

Data Skills

blog

6 práticas recomendadas de Python para um código melhor

Descubra as práticas recomendadas de codificação Python para escrever os melhores scripts Python da categoria.
Javier Canales Luna's photo

Javier Canales Luna

13 min

tutorial

Exponentes em Python: Um guia abrangente para iniciantes

Domine os expoentes em Python usando vários métodos, desde funções integradas até bibliotecas poderosas como NumPy, e utilize-os em cenários do mundo real para obter uma compreensão mais profunda.
Satyam Tripathi's photo

Satyam Tripathi

9 min

tutorial

Matrizes Python

Matrizes Python com exemplos de código. Saiba como criar e imprimir matrizes usando o Python NumPy hoje mesmo!
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Tutorial de funções Python

Um tutorial sobre funções em Python que aborda como escrever funções, como chamá-las e muito mais!
Karlijn Willems's photo

Karlijn Willems

14 min

tutorial

Formatação de f-string em Python

Saiba mais sobre a técnica de formatação f-string no Python 3.6. Neste tutorial, você verá as vantagens que ele oferece e verá alguns exemplos de casos de uso.
Hafeezul Kareem Shaik's photo

Hafeezul Kareem Shaik

5 min

See MoreSee More