No Python, sempre que tenho que digitar um número no formato "brasileiro", como "1.000.000,50"
, eu preciso usar vários .replace('.', '')
e .replace(',', '.')
para conseguir converter para float
.
Exemplo:
valor = "1.000.000,50"
valor = valor.replace('.', '').replace(',', '.')
valor = float(valor)
Segue o erro para ilustrar:
Informe a quantidade de vendas do ano de 2022: 1.000.000,50
ValueError Traceback (most recent call last)
/tmp/ipython-input-1270060344.py in <cell line: 0>()
----> 1 vendas_2022 = float(input('Informe a quantidade de vendas do ano de 2022: '))
2 vendas_2023 = float(input('Informe a quantidade de vendas do ano de 2023: '))
3
4 variacao = (vendas_2023 - vendas_2022) / vendas_2022 # fração (0.2 = 20%)
5
ValueError: could not convert string to float: '1.000.000,50'
Existe alguma forma mais prática ou inteligente de fazer essa conversão sem precisar ficar encadeando vários .replace()
manualmente toda vez?
Gostaria de algo que funcione para diferentes formatos, como:
1.234,56
1234,56
123.456.78
2.500
Obrigado!