codigo35.com

Como arredondar números em Python

Você já se deparou com números que precisam ser arredondados ou truncados em seus projetos de programação? Arredondar e truncar números são tarefas fundamentais na programação, e dominar essas habilidades pode economizar tempo e evitar erros.

Neste guia, vamos explorar como arredondar e truncar números em Python, uma linguagem versátil e amplamente usada. Prepare-se para uma jornada prática e esclarecedora!

Você encontra nesse post mostrar

Mão na massa

Conceitos Básicos de Arredondamento e Truncagem

Vamos revisitar conceitos de arredondamento e truncagem.

Antes de mergulharmos nos detalhes técnicos, vamos entender o básico sobre arredondamento e truncagem de números em programação.

O que é arredondamento?

No arredondamento temos um processo de aproximação dos números.

Arredondamento é o processo de ajustar um número para um valor mais simples ou mais próximo. Isso é feito para facilitar cálculos ou tornar números mais legíveis.

O que é truncagem?

Na truncagem temos um processo de eliminação simples dos números.

Truncagem é o processo de simplesmente cortar as casas decimais de um número, sem arredondamento.

Por que arredondar e truncar são importantes na programação?

Arredondamento e truncagem são essenciais para lidar com resultados precisos e evitar erros de cálculo. Em diferentes situações, você pode precisar de um ou de outro 🤠.

Função round() em Python

Usada para arredondar um número seguindo as regras matemáticas de arredondamento

Agora que compreendemos os conceitos básicos, vamos explorar a função round() em Python.

Apresentação da função round()

A função round() é usada para arredondar um número para o valor mais próximo, seguindo as regras matemáticas de arredondamento.

Sintaxe básica

numero_arredondado = round(numero, numero_de_casas_decimais)

Exemplos práticos de arredondamento com round()

# Arredondando para o inteiro mais próximo
numero1 = round(3.6)  # Resultado: 4

# Arredondando para uma casa decimal
numero2 = round(2.345, 1)  # Resultado: 2.3

# Arredondando para duas casas decimais
numero3 = round(7.8912, 2)  # Resultado: 7.89

Função trunc() em Python

Usada para simplesmente cortar as casas decimais de um número.

Agora, vamos apresentar a função trunc() em Python.

Apresentação da função trunc()

A função trunc() é usada para simplesmente cortar as casas decimais de um número, sem arredondamento.

Sintaxe básica

import math
numero_truncado = math.trunc(numero)

Exemplos práticos de truncagem com trunc()

import math

# Truncando um número com casas decimais
numero1 = math.trunc(3.6)  # Resultado: 3

# Truncando um número com casas decimais
numero2 = math.trunc(2.999)  # Resultado: 2

Arredondando para Números Inteiros

Vamos aplicar as funções acima em diferentes cenários.

Agora que conhecemos a função round() e trunc(), vamos aprender como arredondar e truncar números para inteiros em diferentes cenários.

👉 Como arredondar para o número inteiro mais próximo

Você pode simplesmente usar a função round() sem especificar casas decimais.

Exemplos práticos

import math

numero1 = round(3.6)  # Resultado: 4
numero2 = math.trunc(3.6)  # Resultado: 3

👉 Como arredondar sempre para cima (ceil)

Para arredondar sempre para cima, você pode usar a função math.ceil().

Exemplos práticos

import math

numero1 = math.ceil(3.1)  # Resultado: 4
numero2 = math.ceil(3.9)  # Resultado: 4

👉 Como arredondar sempre para baixo (floor)

Para arredondar sempre para baixo, você pode usar a função math.floor().

Exemplos práticos

import math

numero1 = math.floor(3.1)  # Resultado: 3
numero2 = math.floor(3.9)  # Resultado: 3

Arredondamento e Truncagem Decimal

Agora, vamos mergulhar mais fundo e aprender como arredondar e truncar números para casas decimais específicas.

Arredondando para um número específico de casas decimais

Você pode usar a função round() com a especificação do número de casas decimais desejadas.

Exemplos práticos de arredondamento com round()

numero1 = round(2.345, 1)  # Resultado: 2.3
numero2 = round(7.8912, 2)  # Resultado: 7.89

Truncando para um número específico de casas decimais

Você pode usar a função trunc() em conjunto com operações matemáticas para truncar para um número específico de casas decimais.

Exemplos práticos de truncagem personalizada

import math

def truncar(numero, casas_decimais):
    fator = 10 ** casas_decimais
    return math.trunc(numero * fator) / fator

numero1 = truncar(2.345, 1)  # Resultado: 2.3
numero2 = truncar(7.8912, 2)  # Resultado: 7.89

Estratégias Avançadas de Arredondamento e Truncagem

À medida que avançamos, vamos explorar estratégias avançadas de arredondamento e truncagem em Python.

Arredondamento e truncagem baseados em critérios condicionais

Você pode usar estruturas condicionais para arredondar ou truncar números com base em regras específicas.

Exemplos práticos

import math

def arredondar_condicionalmente(numero):
    if numero > 5:
        return math.ceil(numero)
    else:
        return math.floor(numero)

def truncar_condicionalmente(numero):
    if numero > 5:
        return math.trunc(numero)
    else:
        return 0  # Truncar para zero quando for menor ou igual a 5

Arredondamento e truncagem de números grandes ou pequenos

Quando lidamos com números muito

grandes ou muito pequenos, é importante considerar as limitações do hardware e as restrições de precisão.

Exemplos práticos

import math

numero_grande = 1e20 + 1.5

arredondado = round(numero_grande, 2)  # Resultado: 1e+20
truncado = math.trunc(numero_grande)  # Resultado: 100000000000000000000

Lidando com Erros Comuns e Limitações

Vamos ver erros comuns ao limitar números.

À medida que você trabalha com arredondamento e truncagem em Python, é fundamental estar ciente dos erros comuns que podem surgir e das limitações inerentes a essas operações. Vamos explorar esses aspectos com mais profundidade:

Erros Típicos ao Arredondar e Truncar Números

Arredondamento Inadequado de Valores Médios

Um erro comum é arredondar valores médios de maneira incorreta. Por exemplo, ao arredondar 2.5 para o número inteiro mais próximo, o resultado deve ser 3, mas algumas abordagens de arredondamento podem resultar em 2.

Exemplo:

valor = 2.5
resultado_incorreto = round(valor)  # Resultado: 2 (incorreto)

Erros de Precisão em Cálculos Financeiros

💸 Ao lidar com cálculos financeiros, é importante observar possíveis erros de arredondamento que podem afetar o resultado final. O ideal nesse caso é usar alguma biblioteca especializada que resolva esse tipo de problema.

Limitações da Função round()

A função round() em Python segue uma regra de arredondamento conhecida como “round half to even” (arredondar para o mais próximo par em caso de empate). Isso pode não ser apropriado em todas as situações, como cálculos financeiros, onde pode ser necessário arredondar sempre para cima ou para baixo em caso de empate.

Exemplo:

valor = 2.5
resultado = round(valor)  # Resultado: 2 (para o par mais próximo)

Limitações da Função trunc()

Truncagem sem Arredondamento: A função trunc() simplesmente corta as casas decimais de um número sem considerar o valor das casas decimais que estão sendo cortadas. Isso pode levar a resultados imprecisos em alguns casos.

Exemplo:

import math 

valor = 2.99
resultado = math.trunc(valor)  # Resultado: 2 (corta as casas decimais)

Lidando com Limitações e Erros

Para lidar com essas limitações e erros, é importante adotar abordagens específicas em seu código:

  1. Escolha a Função Adequada: Certifique-se de escolher a função correta para a tarefa em questão. Se precisar de um arredondamento preciso em cálculos financeiros, considere implementar sua própria função de arredondamento personalizada.

  2. Use Bibliotecas Externas: Em casos críticos que exigem precisão extrema, considere o uso de bibliotecas externas especializadas em matemática financeira, que podem oferecer algoritmos mais adequados.

  3. Teste Seu Código: Sempre teste seu código com casos de borda e situações críticas para verificar se o arredondamento ou a truncagem estão produzindo os resultados esperados.

  4. Documentação Clara: Se você compartilhar seu código com outros ou trabalhar em equipe, forneça documentação clara sobre como o arredondamento e a truncagem estão sendo tratados em seu projeto.

  5. Seja Consciente das Implicações: Ao realizar cálculos sensíveis, esteja ciente das implicações do arredondamento ou truncagem em seus resultados e como isso pode afetar decisões críticas.

Para lidar com essas limitações e erros, é essencial adotar abordagens específicas em seu código. Primeiramente, você deve escolher a função adequada, pois essa decisão impacta diretamente na precisão de seus cálculos.

Em contrapartida, em situações críticas que exigem precisão extrema, considere o uso de bibliotecas externas especializadas, como no caso problemas financeiros, visto que bibliotecas para esse fim oferecem algoritmos mais adequados

Dicas para Melhorar o Desempenho

Manter o desempenho eficiente do seu código é importante

Ao trabalhar com arredondamento e truncagem em Python, é importante não apenas alcançar resultados precisos, mas também manter o desempenho eficiente do seu código. Aqui estão algumas dicas valiosas para melhorar o desempenho ao realizar essas operações:

Evite Redundância de Cálculos

Ao arredondar ou truncar números em várias partes do seu código, evite calcular repetidamente os mesmos valores. Armazene os resultados em variáveis para reutilização. Isso economiza tempo de processamento, especialmente em loops e cálculos intensivos.

Exemplo:

# Evite fazer cálculos repetidos
numero = 3.14159
resultado1 = round(numero, 2)
resultado2 = round(numero, 3)

Escolha a Função Certa

Se você só precisa truncar números, use a função trunc() em vez da round(). Escolher a função apropriada para a tarefa pode melhorar o desempenho, pois evita cálculos desnecessários.

Exemplo:

import math 

# Use a função adequada
numero = 3.14159
truncado = math.trunc(numero)

Use Truncagem Personalizada

Em algumas situações, você pode precisar de uma truncagem específica que não é fornecida pela função trunc(). Nesse caso, crie sua própria função de truncagem personalizada, evitando o uso de operações matemáticas excessivas.

Exemplo:

import math 

def truncar(numero, casas_decimais):
    fator = 10 ** casas_decimais
    return math.trunc(numero * fator) / fator

numero_truncado = truncar(2.345, 1)  # Resultado: 2.3

Considere Uso de Números Inteiros

Se você está trabalhando apenas com números inteiros e não precisa de casas decimais, considere trabalhar com valores inteiros sempre que possível. Isso pode melhorar significativamente o desempenho, já que números inteiros são processados mais rapidamente do que números de ponto flutuante.

Exemplo:

numero_inteiro = 42

Limite a Precisão Necessária

Não arredonde ou trunque para mais casas decimais do que você realmente precisa. Limitar a precisão pode reduzir o tempo de cálculo e o uso de memória.

Exemplo:

# Limite a precisão ao necessário
resultado = round(7.8912345678, 4)  # Resultado: 7.8912

Utilize Bibliotecas Externas

Em alguns casos, considere usar uma biblioteca externa com o Numpy

Para cenários complexos que envolvem arredondamento ou truncagem em grande escala, considere o uso de bibliotecas externas otimizadas. Algumas bibliotecas oferecem algoritmos altamente eficientes para manipulação de números.

Exemplo:

import numpy as np
numero = np.round(3.14159, 2)

Lembre-se de que, em muitos casos, o desempenho pode não ser uma preocupação crítica, especialmente em pequenos projetos.

No entanto, em aplicações que envolvem grandes conjuntos de dados ou cálculos intensivos, seguir essas dicas pode fazer uma diferença significativa no desempenho geral do seu código. O equilíbrio entre precisão e desempenho é essencial para projetos eficientes em Python.

Conclusão

Ainda em dúvidas? Compartilha com a gente nos comentários!

Esperamos que você tenha adquirido uma compreensão sólida desses conceitos e esteja pronto para aplicá-los em seus projetos de programação.

Revisando o que foi abordado:

Recursos Extras

Exit mobile version