Arredondar para dígitos significativos em Python

Shivam Arora 30 janeiro 2023
  1. Use a função round() para arredondar um número para o dígito significativo fornecido em Python
  2. Use o módulo math para arredondar um número para o dígito significativo fornecido em Python
  3. Use a formatação de string para arredondar um número para o dígito significativo fornecido em Python
  4. Use o módulo sigfig para arredondar um número para o dígito significativo fornecido em Python
Arredondar para dígitos significativos em Python

Arredondar o número significa substituir um número por um valor aproximado próximo a ele. Também podemos arredondar os números para o algarismo significativo necessário.

Neste artigo, vamos arredondar um número para um dígito significativo específico em Python.

Use a função round() para arredondar um número para o dígito significativo fornecido em Python

A função round() arredonda os valores flutuantes fornecidos para o inteiro mais próximo ou para a posição decimal especificada.

Podemos usar um número negativo para arredondar o inteiro para o valor de piso significativo atribuindo-o à função round(). Este número negativo a ser especificado depende dos dígitos significativos exigidos.

Por exemplo, se desejarmos arredondar para um dígito significativo, especificamos o valor como (1 dígitos no total) na função round().

Veja o seguinte código.

x = round(1342, -3)
print(x)

Produção:

1000

Use o módulo math para arredondar um número para o dígito significativo fornecido em Python

Este método é um aprimoramento da função discutida anteriormente. Podemos criar uma função simples definida pelo usuário para tornar isso mais conveniente. Não teremos que especificar o número negativo na função round() deste método. Vamos substituir isso usando uma combinação da função math.floor() e da função math.log10().

Veja o código abaixo.

from math import log10, floor


def round_it(x, sig):
    return round(x, sig - int(floor(log10(abs(x)))) - 1)


print(round_it(1324, 1))

Produção:

1000

Use a formatação de string para arredondar um número para o dígito significativo fornecido em Python

Em Python, o especificador %g em string formata um float arredondado para um algarismo significativo especificado. Se a magnitude do número final for enorme, ele será mostrado em notação científica.

Este método retorna uma string. Portanto, temos que converter o número da string de volta para um valor flutuante ou inteiro após formatá-lo.

Por exemplo,

x = float("%.1g" % 1324)
print(x)

Produção:

1000.0

Use o módulo sigfig para arredondar um número para o dígito significativo fornecido em Python

O módulo sigfig é a melhor opção para arredondar os números para um dígito significativo, pois minimiza o incômodo de criar uma função definida pelo usuário e simplifica o código.

Podemos especificar o número de dígitos significativos na função round() deste módulo.

Veja o seguinte exemplo.

from sigfig import round

print(round(1324, sigfigs=1))

Produção:

1000