Estou olhando para formatar um número como 188518982.18 a £ 188.518.982,18 usando Python.
Como posso fazer isso?
python
formatting
currency
RailsSon
fonte
fonte
locale
uso do valor da moeda do módulo e as propriedades de exibição dessa moeda.Respostas:
Veja o módulo de localidade .
Isso faz a formatação de moeda (e data).
fonte
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
e funcionou perfeitamente!Novo no 2.7
http://docs.python.org/dev/whatsnew/2.7.html#pep-0378
fonte
$ 123,456.78
algumas vezes. Edit: markdown retira os espaços extras, finja que há mais entre $ e números #Não sei ao certo por que não foi mencionado mais online (ou neste tópico), mas o pacote Babel (e os utilitários Django) do pessoal do Edgewall é incrível para formatação de moeda (e muitas outras tarefas do i18n). É bom porque não sofre com a necessidade de fazer tudo globalmente, como o módulo principal de localidade do Python.
O exemplo que o OP deu seria simplesmente:
fonte
locale
argumentoformat_currency
pode ser usado para resolver isso, mas isso não estava no documento há quatro anos (quando escrevi esse comentário) ou apenas testei o código dessa resposta como está sem verificar o documento.Este é um post antigo, mas acabei de implementar a seguinte solução, que:
Código:
Resultado:
E para o pôster original, obviamente, basta mudar
$
para£
fonte
print(f'Value is: ${value:,.2f}'.replace('$-', '-$'))
Minhas configurações de localidade pareciam incompletas, então eu também procurei além desta resposta do SO e descobri:
http://docs.python.org/library/decimal.html#recipes
Independente do SO
Só queria compartilhar aqui.
fonte
def moneyfmt(value, places=2, curr='', sep=',', dp='.', pos='', neg='-', trailneg='')
?Se você estiver usando o OSX e ainda não tiver definido a configuração do módulo de localidade, esta primeira resposta não funcionará, você receberá o seguinte erro:
Para remediar isso, você precisará usar o seguinte:
fonte
"{:0,.2f}".format(float(your_numeric_value))
no Python 3 faz o trabalho; fornece algo como uma das seguintes linhas:fonte
Se eu fosse você, usaria o BABEL: http://babel.pocoo.org/en/latest/index.html
fonte
format_currency
.Oh, isso é uma fera interessante.
Passei um tempo considerável para acertar isso, há três problemas principais que diferem de localidade para localidade: - símbolo e direção da moeda - separador de milhar - ponto decimal
Eu escrevi minha própria implementação bastante extensa disso, que faz parte da estrutura do kiwi python, confira a fonte LGPL: ed aqui:
http://svn.async.com.br/cgi-bin/viewvc.cgi/kiwi/trunk/kiwi/currency.py?view=markup
O código é um pouco específico do Linux / Glibc, mas não deve ser muito difícil de adotar no Windows ou em outros unixes.
Depois de instalá-lo, você pode fazer o seguinte:
O que lhe dará:
ou
Dependendo do local selecionado atualmente.
O ponto principal deste post sobre o outro é que ele funcionará com versões mais antigas do python. locale.currency foi introduzido no python 2.5.
fonte
10,50 kr
vez dekr 10,50
.#imprimir a variável 'Total:' em um formato semelhante a '9.348.237'
onde '{: 7, .3f}' é o número de espaços para formatar o número nesse caso, é um milhão com 3 casas decimais. Em seguida, você adiciona o '.format (zum1). O zum1 é a variável que possui o grande número para a soma de todos os números no meu programa em particular. Variável pode ser qualquer coisa que você decida usar.
fonte
Inspirado no código acima: D
fonte
Eu vim para olhar a mesma coisa e descobri que o python-money ainda não o utilizava, mas talvez uma mistura dos dois seria boa
fonte
Um lambda para calcular dentro de uma função, com a ajuda da resposta de @ Nate
e depois,
fonte
Código python simples!
fonte
"$2,129.1468284147656"
,"$10,948.3742933"
,"$1,0908"
. Garbles a corda.