Je cherche à formater un nombre comme 188518982.18 à 188 518 982,18 £ en utilisant Python.
Comment puis-je faire ceci?
python
formatting
currency
RailsSon
la source
la source
locale
utilisation de la valeur de la devise par le module et les propriétés d'affichage de cette devise.Réponses:
Voir le module de paramètres régionaux .
Cela fait le formatage de la devise (et de la date).
la source
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
et cela a parfaitement fonctionné!Nouveau dans 2.7
http://docs.python.org/dev/whatsnew/2.7.html#pep-0378
la source
$ 123,456.78
parfois cependant. Edit: le démarque supprime les espaces supplémentaires, prétendez qu'il y a plus entre le $ et les nombresJe ne sais pas trop pourquoi cela n'est pas mentionné plus en ligne (ou sur ce fil), mais le package Babel (et les utilitaires Django) des gars d'Edgewall est génial pour le formatage des devises (et beaucoup d'autres tâches i18n). C'est bien car il ne souffre pas de la nécessité de tout faire globalement, comme le module principal de paramètres régionaux Python.
L'exemple donné par l'OP serait simplement:
la source
locale
argument toformat_currency
puisse être utilisé pour résoudre ce problème, mais soit ce n'était pas dans la doc il y a quatre ans (quand j'ai écrit ce commentaire) ou j'ai juste testé le code de cette réponse tel quel sans vérifier la doc.Ceci est un article ancien, mais je viens de mettre en œuvre la solution suivante qui:
Code:
Production:
Et pour l'affiche originale, évidemment, il suffit de changer
$
pour£
la source
print(f'Value is: ${value:,.2f}'.replace('$-', '-$'))
Mes paramètres régionaux semblaient incomplets, donc j'avais trop regardé au-delà de cette réponse SO et trouvé:
http://docs.python.org/library/decimal.html#recipes
Indépendant du système d'exploitation
Je voulais juste partager ici.
la source
def moneyfmt(value, places=2, curr='', sep=',', dp='.', pos='', neg='-', trailneg='')
?Si vous utilisez OSX et que vous n'avez pas encore défini le paramètre de votre module de paramètres régionaux, cette première réponse ne fonctionnera pas, vous recevrez l'erreur suivante:
Pour remédier à cela, vous devrez utiliser les éléments suivants:
la source
"{:0,.2f}".format(float(your_numeric_value))
dans Python 3 fait le travail; il donne quelque chose comme l'une des lignes suivantes:la source
Si j'étais vous, j'utiliserais BABEL: http://babel.pocoo.org/en/latest/index.html
la source
format_currency
.Oh, c'est une bête intéressante.
J'ai passé beaucoup de temps à y parvenir, il y a trois problèmes principaux qui diffèrent d'une locale à l'autre: - symbole et direction de la devise - séparateur des milliers - point décimal
J'ai écrit ma propre implémentation assez étendue de ceci qui fait partie du framework kiwi python, consultez la source LGPL: ed ici:
http://svn.async.com.br/cgi-bin/viewvc.cgi/kiwi/trunk/kiwi/currency.py?view=markup
Le code est légèrement spécifique à Linux / Glibc, mais ne devrait pas être trop difficile à adopter pour Windows ou d'autres Unix.
Une fois que vous l'avez installé, vous pouvez effectuer les opérations suivantes:
Ce qui vous donnera alors:
ou
Selon les paramètres régionaux actuellement sélectionnés.
Le point principal de cet article par rapport à l'autre est qu'il fonctionnera avec les anciennes versions de python. locale.currency a été introduit dans python 2.5.
la source
10,50 kr
au lieu dekr 10,50
.#impression de la variable 'Total:' dans un format qui ressemble à ceci '9,348.237'
où '{: 7, .3f}' est le nombre d'espaces pour formater le nombre dans ce cas est un million avec 3 décimales. Ensuite, vous ajoutez le '.format (zum1). Le zum1 est la variable qui a le grand nombre pour la somme de tous les nombres dans mon programme particulier. La variable peut être tout ce que vous décidez d'utiliser.
la source
Inspiré du code ci-dessus: D
la source
J'en suis venu à regarder la même chose et j'ai trouvé que l' argent python ne l'utilisait pas encore vraiment, mais peut-être qu'un mélange des deux serait bien
la source
Un lambda pour le calculer dans une fonction, avec l'aide de la réponse de @ Nate
puis,
la source
Code python simple!
la source
"$2,129.1468284147656"
,"$10,948.3742933"
,"$1,0908"
. Déforme la corde.