Como formatar um número flutuante a uma largura fixa em Python
Como formatar um número flutuante a uma largura fixa com os seguintes requisitos:
- Zero inicial se n < 1
- Adicionar Zero(s) decimal (s) posterior (AIS) para preencher a largura fixa
- truncar algarismos decimais após Largura Fixa
- alinhar todos os pontos decimais
por exemplo:
% formatter something like '{:06}'
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
a saída seria como
23.2300
0.1233
1.0000
4.2230
9887.2000
212
5 answers
for x in numbers:
print "{:10.4f}".format(x)
Impressões digitais
23.2300
0.1233
1.0000
4.2230
9887.2000
340
Author: Sven Marnach, 2012-01-16 20:10:38
Em python3 as seguintes obras:
>>> v=10.4
>>> print('% 6.2f' % v)
10.40
>>> print('% 12.1f' % v)
10.4
>>> print('%012.1f' % v)
0000000010.4
25
Author: Scott Roberts, 2015-05-26 04:19:30
Ver Python 3.x formatar a sintaxe do texto:
IDLE 3.5.1
numbers = ['23.23', '.1233', '1', '4.223', '9887.2']
for x in numbers:
print('{0: >#016.4f}'. format(float(x)))
23.2300
0.1233
1.0000
4.2230
9887.2000
6
Author: readyleader, 2017-02-01 01:50:27
Em Python 3.
GPA = 2.5
print(" %6.1f " % GPA)
6.1f
significa que, após os pontos 1 dígitos, mostrar se imprimir 2 dígitos a seguir aos pontos, só deverá %6.2f
de modo que %6.3f
3 dígitos imprimam a seguir ao ponto.
0
Author: Usman Zia, 2017-08-19 07:19:33
Tem sido um pouco seu desde que esta resposta foi dada, mas a partir do Python 3.6 (PEP498 Você poderia usar o novo f-strings
:
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print(f'{number:9.4f}')
Impressões Digitais:
23.2300
0.1233
1.0000
4.2230
9887.2000
0
Author: artomason, 2018-10-04 15:08:18