Arredondamento Python

Resumo : neste tutorial, você aprenderá como usar a round()função Python para arredondar um número.

Introdução à round()função Python

Arredondar significa simplificar um número, mas manter seu valor próximo ao valor original. Por exemplo, 89 arredondado para a dezena mais próxima é 90 porque 89 está mais próximo de 90 do que de 80.

Para arredondar um número em Python, você usa a função integrada round():

round(number [, ndigits])Linguagem de código:  Python  ( python )

A round()função arredonda numberpara o múltiplo mais próximo de 10 dígitos .

Em outras palavras, a round()função retorna o numberarredondamento com ndigitsprecisão após a vírgula.

Se ndigitsfor omitido ou None, round()retornará o número inteiro mais próximo.

Exemplos de funções round() em Python

Vamos dar alguns exemplos para entender round()melhor a função.

round()1) Exemplos de funções Python

O exemplo a seguir usa a round()função sem passar ndigits:

round(1.25)Linguagem de código:  Python  ( python )

Saída:

1Linguagem de código:  Python  ( python )

Ele retorna um número inteiro 1.

Porém, se você passar ndigitscomo zero, a round()função retornará um float 1.0:

round(1.25, 0)Linguagem de código:  Python  ( python )

Saída:

1.0Linguagem de código:  Python  ( python )

O seguinte ilustra como a round()função funciona nos bastidores:

Como ndigitsé zero, a round()função arredonda o número 1.25para o múltiplo mais próximo de 10 -(0) = 1.

2) Exemplo de função Python round() com ndigits negativos

O exemplo a seguir usa a round()função com negativo ndigits:

round(15.5, -1)Linguagem de código:  Python  ( python )

Porque ndigitsis -1, a round()função arredonda o número 15.5para o múltiplo mais próximo de 20(10 -(-1) ):

Como 15.5está situado entre 10e 20(múltiplo de 10), está mais próximo de 20. Portanto, a round()função retorna 20.

round()3) Exemplo de função Python com vínculos

Quando você arredonda um número situado no meio de dois números, o Python não consegue encontrar o número mais próximo.

Por exemplo, se você arredondar o número 1.25com n será 1. Não haverá número mais próximo:

Nesse caso, Python usa o padrão IEEE 754 para arredondamento, chamado de arredondamento do banqueiro.

No arredondamento do banqueiro, um número é arredondado para o valor mais próximo, com empates arredondados para o valor mais próximo com um dígito ainda menos significativo .

Geralmente, o dígito menos significativo em um número é o dígito mais à direita.

O arredondamento do banqueiro vem da ideia de que estatisticamente 50% da amostra dos números são arredondados para cima e 50% são arredondados para baixo.

Por exemplo:

round(1.25, 1)Linguagem de código:  Python  ( python )

Ele retorna 1,2

Porque o dígito menos significativo de 1.2é 2, que é par:

Da mesma forma, o arredondamento 1.35retornará 1.4:

round(1.35, 1)Linguagem de código:  Python  ( python )

Python usa arredondamento bancário, mas não arredondando a partir de zero porque é menos tendencioso.

Por exemplo, se você calcular a média de três números 1.5, 2.5e 3.5, o arredondamento de zero retornará 30,0 enquanto o arredondamento do banqueiro retornará 2.66:

Número Arredondamento do banqueiro Arredondando a partir de zero
1,5 2 2
2,5 2 3
3.5 4 4
Média 2,66666… 3,0

Como arredondar de zero

Python não fornece uma maneira direta de arredondar um número de zero como você poderia esperar. Por exemplo:

Número Arredondando a partir de zero
1.2 1
1,5 2

Uma maneira comum de arredondar um número para longe de zero é usar a seguinte expressão:

int(x + 0.5)Linguagem de código:  Python  ( python )

Esta expressão funciona corretamente para números positivos. Por exemplo:

print(int(1.2 + 0.5))
print(int(1.5 + 0.5))Linguagem de código:  Python  ( python )

Saída:

1
2Linguagem de código:  Python  ( python )

No entanto, não funciona para os números negativos:

print(int(-1.2 + 0.5))
print(int(-1.5 + 0.5))Linguagem de código:  Python  ( python )

Saída:

0
-1Linguagem de código:  Python  ( python )

Para números negativos, você deve subtrair 0,5 em vez de adicioná-lo.

O exemplo a seguir funciona corretamente para números negativos:

print(int(-1.2 - 0.5))
print(int(-1.5 - 0.5))Linguagem de código:  Python  ( python )

O seguinte define uma função auxiliar que arredonda um número:

def round_up(x):
    if x > 0:
        return int(x + 0.5)
    return int(x - 0.5)Linguagem de código:  Python  ( python )

O módulo Python mathfornece uma função chamada copysign():

math.copysign(x, y)Linguagem de código:  Python  ( python )

A copysign()função retorna o valor absoluto de xmas o sinal de y.

E você pode usar esta copysign()função para desenvolver uma round_up()função sem verificar se xé positiva ou negativa:

from math import copysign

def round_up(x):
    return int(x + copysign(0.5, x))Linguagem de código:  Python  ( python )

Resumo

  • Use a round(number, ndigits)função para arredondar a numberaté a ndigitsprecisão após a vírgula decimal.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *