Formatar um número flutuante em string em Python
-
Formate números flutuantes para uma largura fixa usando a especificação de formato e o método
format()
- Formatar números flutuantes em uma lista para uma largura fixa
-
Formate um número flutuante para corrigir a largura usando o operador
%
em Python -
Formate um número flutuante para uma largura fixa usando a função
round()
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.