Função round() em Python Explicada com Exemplos Práticos
Função round() em Python Explicada
A função nativa round() é essencial para trabalho numérico em Python. Ela retorna um valor arredondado para um número especificado de casas decimais, defaulting para o inteiro mais próximo quando nenhuma precisão é fornecida.
Sintaxe
round(numero, ndigitos=None)
- numero – O valor numérico a ser arredondado.
- ndigitos – Opcional; o número de casas decimais a manter. Se omitido, o resultado é um inteiro.
Valor de Retorno
Quando ndigitos é omitido, round() retorna um int. Se ndigitos é fornecido, o resultado é um float arredondado para essa precisão.
Regras de Arredondamento
- Se o dígito seguinte à casa alvo for 5 ou maior, o valor é arredondado para cima.
- Se for menor que 5, o valor é truncado na precisão especificada.
Por que o Arredondamento Importa: Exemplo do Mundo Real
Em mercados financeiros, o arredondamento pode influenciar milhões de dólares em negociações. Por exemplo, a Bolsa de Valores de Vancouver em 1982 truncava preços de negociação para três casas decimais, levando a uma perda cumulativa mensal de cerca de 25 pontos. Arredondar em vez de truncar produz resultados muito mais precisos.
# Exemplo: Truncamento vs. Arredondamento
import random
def truncar(num):
return int(num * 1000) / 1000
arr = [random.uniform(0.01, 0.05) for _ in range(1_000_000)]
# Truncamento
soma_trunc = 0
for val in arr:
soma_trunc = truncar(soma_trunc + val)
# Arredondamento
soma_round = 0
for val in arr:
soma_round = round(soma_round + val, 3)
print("Soma truncada:", soma_trunc)
print("Soma arredondada:", soma_round)
O total truncado pode desviar centenas de unidades, enquanto o arredondamento mantém o desvio em uma fração de unidade.
Casos de Uso Comuns
Arredondando Números de Ponto Flutuante
# Arredondamento básico print(round(10.60)) # 11 print(round(10.40)) # 10 print(round(10.3456, 2)) # 10.35 print(round(10.3445, 2)) # 10.34
Arredondando Inteiros
print(round(15)) # 15
Arredondando Números Negativos
print(round(-2.8)) # -3 print(round(-1.5)) # -2
Arredondando Arrays NumPy
import numpy as np arr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323] print(np.round(arr, 2)) # [-0.34 1.46 4.23 -0.34 7.63 5.12]
Usando o Módulo Decimal para Precisão
O módulo decimal oferece controle mais fino sobre modos de arredondamento.
import decimal
num = decimal.Decimal('15.456')
print(num.quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_UP)) # 15.46
Principais Conclusões
- Use
round(numero, ndigitos)para arredondamento padrão. - Omitir
ndigitosretorna um inteiro; fornecê-lo retorna um float. - Para cálculos financeiros ou científicos críticos, considere
decimalpara arredondamento determinístico.
python
- Funções Lambda em Python: Guia Prático para Funções Anônimas
- Generators em Python: Iteração Eficiente e Casos de Uso Avançados
- Closures em Python Explicados: Como Funções Aninhadas Capturam Variáveis
- Dominando Decorators em Python: Aprimore Funções com Técnicas de Especialista
- Sobrecarga de Operadores em C++: Guia Prático com Exemplos de Código
- Funções em C++ Explicadas com Exemplos Práticos de Código
- Função Print() do Python: Guia Prático com Exemplos
- Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
- Domine o str.count() do Python: Como Contar Caracteres e Substrings com Exemplos
- Domine Strings format() em Python com Exemplos Claros