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 number
para o múltiplo mais próximo de 10 dígitos .
Em outras palavras, a round()
função retorna o number
arredondamento com ndigits
precisão após a vírgula.
Se ndigits
for 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:
1
Linguagem de código: Python ( python )
Ele retorna um número inteiro 1
.
Porém, se você passar ndigits
como zero, a round()
função retornará um float 1.0:
round(1.25, 0)
Linguagem de código: Python ( python )
Saída:
1.0
Linguagem 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.25
para 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 ndigits
is -1
, a round()
função arredonda o número 15.5
para o múltiplo mais próximo de 20
(10 -(-1) ):
Como 15.5
está situado entre 10
e 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.25
com 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.35
retornará 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.5
e 3.5
, o arredondamento de zero retornará 3
0,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
2
Linguagem 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
-1
Linguagem 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 math
fornece uma função chamada copysign()
:
math.copysign(x, y)
Linguagem de código: Python ( python )
A copysign()
função retorna o valor absoluto de x
mas 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 anumber
até andigits
precisão após a vírgula decimal.