Formatar um número flutuante em string em Python

Ankur Baral 10 outubro 2023
  1. Formate números flutuantes para uma largura fixa usando a especificação de formato e o método format()
  2. Formatar números flutuantes em uma lista para uma largura fixa
  3. Formate um número flutuante para corrigir a largura usando o operador % em Python
  4. Formate um número flutuante para uma largura fixa usando a função round() em Python
Formatar um número flutuante em string em Python

Este artigo apresentará alguns métodos para formatar um número flutuante para uma largura fixa em Python.

Formate números flutuantes para uma largura fixa usando a especificação de formato e o método format()

Aqui, usaremos o processo de formatação normal por meio da especificação de formato para corrigir a largura dos números flutuantes.

Vamos criar uma variável num e atribuir um número flutuante a ela. Em seguida, imprimiremos o número flutuante no formato que precisamos. Vamos usar a função format() para obter o nosso resultado.

Códigos de exemplo:

# python 3.x
num = 0.02893574
print("{:.4f}".format(num))

Resultado:

0.0289

Aqui, .4f é chamado de especificação de formato, o que denota que a saída deve mostrar apenas quatro casas após o decimal. Se usássemos .5f em vez disso, obteríamos até cinco dígitos após a vírgula decimal. A string vazia antes dos dois pontos : é colocada de forma que o argumento fornecido para a função format() tome esse lugar. No programa acima, o argumento que fornecemos é num. Portanto, qualquer valor que tivermos em num será passado para a string vazia antes de : e formatado de acordo.

No python 3.6, também podemos usar f'{}' para obter a mesma Resultado:

#python 3.x
num = 0.02893574
print (f'{num:.4f}')

Resultado:

0.0289

Formatar números flutuantes em uma lista para uma largura fixa

Usamos sintaxes semelhantes para fixar a largura dos números flutuantes até um dígito específico após o decimal.

Primeiro, criaremos uma lista com vários números flutuantes. Então, usaremos o loop for para pegar cada item da lista e formatá-lo de acordo. Usaremos a variável numbers para representar os números dentro da lista. Iremos imprimir os números flutuantes na lista um por um com números fixos de dígitos após o decimal.

Código de exemplo:

# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
    print("{:.3f}".format(numbers))

Resultado:

18.292
52.452
999.121

No código acima, cada número dentro da lista é enviado um a um dentro do loop for. O primeiro elemento da lista, ou seja, list[0], é atribuído à variável numbers e seu valor formatado, ou seja, 18.293, é impresso. Aconteceu porque executamos .3f, que representa dígitos até três casas decimais. Da mesma forma, o segundo elemento list[1] e o terceiro list[2] também são passados ​​para o loop como variáveis ​​numbers e são impressos de acordo.

Este programa é executado até que todos os elementos da lista sejam executados.

Usando o f'{}':

Código de exemplo:

A lista abaixo contém os mesmos itens do programa acima. Usaremos f'{}' em vez da função format() neste exemplo.

# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
    print(f"{numbers:9.3f}")

Resultado:

 18.292
 52.452
999.121

Podemos ver isso quando obtivemos a saída quando usamos f'{}'. Também obtivemos a saída desejada de forma alinhada. Pela mesma razão, geralmente é melhor usar f'{}' se quisermos que os dígitos flutuantes após o decimal sejam alinhados.

Formate um número flutuante para corrigir a largura usando o operador % em Python

Também podemos definir uma largura fixa para um número flutuante com o uso do operador %v. O código pode ser semelhante à função printf() na programação C.

Iremos atribuir um número flutuante a uma variável num e imprimir o valor de num com dígitos decimais até uma largura fixa. Observe que ao passar o valor de num para a instrução de impressão com o especificador de formato %.4f, estamos usando %num. A falta de % antes de num será um erro de sintaxe.

Código de exemplo:

# python 3.x
num = 0.02893574
print("%.4f" % num)

Resultado:

0.0289

Aqui, o uso de %num nos permitiu imprimir o valor desejado sem qualquer função ou formatação de string.

Formate um número flutuante para uma largura fixa usando a função round() em Python

Também podemos usar a função round() para fixar o número de dígitos após a vírgula decimal. Esta função limita o número de dígitos após o ponto decimal no número de entrada. Ele também arredonda o dígito no qual o limite é definido para seu valor integral superior se o dígito for maior que o valor 5.

Vamos pegar um número de ponto flutuante e atribuí-lo a uma variável num. Quando imprimirmos, usaremos a função round() para limitar o número de dígitos após a vírgula decimal.

Código de exemplo:

# python 3.x
num = 2.37682
print(round(num, 3))

Resultado:

2.377

A sintaxe para a função round é round(number, digits). Aqui, o argumento number é obrigatório, enquanto o argumento digits é opcional. number também pode ser colocado como uma variável. Se nada for passado para o argumento digits, apenas a parte integral do number é considerada como resultado.

No programa acima, passamos o valor 2.37682 para o primeiro argumento num, e ele foi arredondado para 3 casas após a vírgula porque passamos o valor 3 para o segundo argumento dentro de round() método.

Artigo relacionado - Python Float