J'ai quelques chaînes représentant des nombres avec un format de devise spécifique, par exemple :
money="$6,150,593.22"
Je veux convertir cette chaîne en un nombre
6150593.22
Quelle est la meilleure façon d'y parvenir ?
J'ai quelques chaînes représentant des nombres avec un format de devise spécifique, par exemple :
money="$6,150,593.22"
Je veux convertir cette chaîne en un nombre
6150593.22
Quelle est la meilleure façon d'y parvenir ?
J'ai créé cette fonction il y a quelques années pour résoudre le même problème.
def money(number):
number = number.strip('$')
try:
[num,dec]=number.rsplit('.')
dec = int(dec)
aside = str(dec)
x = int('1'+'0'*len(aside))
price = float(dec)/x
num = num.replace(',','')
num = int(num)
price = num + price
except:
price = int(number)
return price
C'est la méthode la plus simple que j'ai trouvée, sans avoir à coder en dur ou à jouer avec la détection des devises :
>>> money="$6,150,593.22"
>>> amount = float("".join(d for d in money if d.isdigit()))
>>> amount
615059322.0
credit: https://www.reddit.com/r/learnpython/comments/2248mp/how_to_format_currency_without_currency_sign/cgjd1o4?utm_source=share&utm_medium=web2x
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.