Boa tarde,
Qual seria a melhor solução para o erro abaixo?
could not convert string to float: '1.025,00'
Sei que poderia dar um replace na vírgula, mas nao sei se seria a melhor solução.
At., Fabiano Dias
Boa tarde,
Qual seria a melhor solução para o erro abaixo?
could not convert string to float: '1.025,00'
Sei que poderia dar um replace na vírgula, mas nao sei se seria a melhor solução.
At., Fabiano Dias
Olá, Fabiano. Tudo bem?
Fiz uma solução, mas achei ela bem complexa então também estou esperando uma forma mais fácil hahaha. Além disso minha solução tem uma falha que é: Como transformo em float strings e mantenho os valores depois da virgula?
Segue a resolução que fiz:
numero = '1.025,00'
numero = numero.split(',')[:-1]
Pega os dados somente antes da virgula. A variavel numero após o split virá uma lista.
numero = [float(i) for i in numero_lista][0]
Usando list comprehension, apliquei o método float() para cada número dentro da lista. Como só tem um número, vamos pegar somente o primeiro número e único número.
In [1]: numero
Out [1]: 1.025
Resumindo tudo em bloco:
numero = '1.025,00'
numero = numero.split(',')[:-1]
numero = [float(i) for i in numero_lista][0]
numero
Se quiser algo mais direto, você pode jogar a parte do split já no list comprehension.
numero = '1.025,00'
numero = [float(i) for i in numero.split(',')[:-1]][0]
numero
Espero ter ajudado.
Um abraço, Leo
A solução acima também funciona, no entanto caso seu valor tenha algo depois da virgula ele seria perdido. Nesse caso creio que usar replace seria a melhor opção:
numero = '1.025,00'
numero = float(numero.replace('.','').replace(',','.'))
Abs!