Como formatar um número flutuante para uma largura fixa com os seguintes requisitos:
- Zero à esquerda se n <1
- Adicione zero (s) decimal (s) à direita para preencher a largura fixa
- Truncar dígitos decimais após a 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
python
string
numbers
number-formatting
hobbes3
fonte
fonte
10.4
significa uma largura de 10 caracteres e uma precisão de 4 casas decimais.10
é a largura mínima do campo, ou seja, o comprimento mínimo da sequência impressa. Por padrão, os números estão alinhados à direita e preenchidos com espaços - consulte a documentação para obter mais detalhes.("%0.4f" % x).rjust(10)
"%10.4f" % x
. No Python 2.6, você também pode usar"{0:10.4f}".format(x)
.Faz alguns anos desde que isso foi respondido, mas a partir do Python 3.6 ( PEP498 ) você poderia usar o novo
f-strings
:Impressões:
fonte
Em python3, o seguinte funciona:
fonte
%
formatação é o método mais antigo de formatação. Por várias razões, usarstr.format
ouf-strings
é preferível a%
. Anteriormente, quando era apenasstr.format
, as pessoas tinham alguns motivos, masf-strings
consertaram esse buraco. mini-linguagem formato docs , exemplos str.format de docs e literais exemplos f cordas em docsConsulte Sintaxe de cadeia de caracteres no formato Python 3.x :
fonte
Você também pode deixar o teclado com zeros. Por exemplo, se você quiser
number
ter 9 caracteres de comprimento, preenchido à esquerda com zeros use:print('{:09.3f}'.format(number))
Portanto, se
number = 4.656
a saída for:00004.656
Para o seu exemplo, a saída será assim:
impressões:
Um exemplo em que isso pode ser útil é quando você deseja listar corretamente os nomes de arquivos em ordem alfabética. Notei em alguns sistemas linux, o número é: 1,10,11, .. 2,20,21, ...
Portanto, se você deseja impor a ordem numérica necessária nos nomes de arquivos, é necessário deixar o teclado à esquerda com o número apropriado de zeros.
fonte
No Python 3.
6.1f
meio após os pontos 1 dígitos mostrar se imprimir 2 dígitos após os pontos que você só deve%6.2f
tal que%6.3f
3 dígitos de impressão após o ponto.fonte
Eu precisava de algo semelhante para matrizes. Isso me ajudou
fonte