python: comment convertir une devise en décimal?
j'ai de dollars dans une variable de chaîne
dollars = '$5.99'
comment puis-je convertir cette virgule au lieu d'une chaîne de sorte que je puisse faire des opérations avec elle, comme l'ajout de dollars?
source d'informationauteur l--''''''---------''''''''''''
Vous devez vous connecter pour publier un commentaire.
Il y a une approche facile:
Si vous préférez simplement un nombre entier de cents:
Si vous voulez un nombre Décimal, il suffit d'utiliser...
Si vous savez que le signe dollar sera toujours là, vous pouvez utiliser
dollars[1:]
au lieu dedollars.strip('$')
mais à l'aide destrip()
vous permet également de gérer les chaînes omettre le signe de dollar (5.99
au lieu de$5.99
).En supposant que la chaîne stockée dans la variable
dollars
a été généré à l'aide de python locale du module. Potentiellement le moyen le plus propre pour la convertir à flotteur (décimal) est d'utiliser laatof
fonction sur le même module. Il devrait fonctionner aussi longtemps que vous utilisez la mêmesetlocale
paramètres dans les deux sens (de la monnaie à la chaîne et vice-versa).par exemple:
à convertir:
Si vous souhaitez utiliser les Décimales:
À partir de là, l'ajout est assez simple
À travers décimal paquet
Si vous allez seulement d'être en ajoutant (et non pas en multipliant ou divisant) envisager de stocker cents au lieu de dollars et non pas à l'aide de la virgule paquet. Je suggère d'utiliser l'outil le plus simple pour le travail, et les décimales ne fournit pas de valeur si vous êtes juste en ajoutant des dollars et des cents.
D'abord, enlever le caractère'$'. Si c'est toujours le premier caractère, c'est facile:
Pour garder les cents parfaite sans se soucier de la non-représentation parfaite de centimes en virgule flottante, vous aurez envie d'utiliser des valeurs Décimales:
Si vous souhaitez conserver les sommes d'argent dans cents pour faciliter l'arrondissement et, parfois, ' $ ' est manquant:
Je sais que ce une vieille question, mais c'est une approche très simple à votre problème qui est facilement lisible:
pour:
Il fonctionne également avec un plus grand nombre qui pourrait avoir une virgule: