Como Converter uma String para um Float em Python

Introdução

Neste artigo, vamos usar a função float() do Python para converter strings em floats. E também vamos usar a função str() do Python para converter floats em strings.

É importante converter adequadamente os tipos de dados antes de usá-los para cálculos e concatenações, a fim de evitar erros de tempo de execução.

Pré-requisitos

Para completar este tutorial, você precisará:

Este tutorial foi testado com Python 3.9.6.

Usando a função float()

Podemos converter uma string para float em Python usando a função float(). Esta é uma função integrada usada para converter um objeto em um número de ponto flutuante. Internamente, a função float() chama a função __float__() do objeto especificado.

Exemplo

Vamos dar uma olhada em um exemplo de como converter uma string para float em Python:

input_1 = '10.5674'

input_1 = float(input_1)

print(type(input_1))
print('Float Value =', input_1)

Resultado:

<class 'float'>
Float Value = 10.5674

O valor de string '10.5674' foi convertido para o valor float 10.5674.

Por que precisamos converter uma string para float?

Se estamos recebendo um valor float da entrada do usuário pelo terminal ou lendo de um arquivo, eles são objetos de string. Temos que convertê-los explicitamente para float para que possamos realizar operações necessárias, como adição, multiplicação, etc.

input_1 = input('Please enter first floating point value:\n')
input_1 = float(input_1)

input_2 = input('Please enter second floating point value:\n')
input_2 = float(input_2)

print(f'Sum of {input_1} and {input_2} is {input_1+input_2}')

Nota: Se você não está familiarizado com a formatação de string usando o prefixo f, por favor, leia f-strings em Python.

Vamos executar este código e fornecer valores float para input_1 e input_2:

Please enter first floating point value:
10.234
Please enter second floating point value:
2.456
Sum of 10.234 and 2.456 is 12.69

O resultado da soma de 10.234 e 2.456 é 12.69.

Idealmente, deveríamos usar um bloco try-except para capturar exceções em caso de entrada inválida do usuário.

Usando a função str()

Também podemos converter um número decimal para uma string usando a função str(). Isso pode ser necessário em situações em que desejamos concatenar valores decimais.

Exemplo

Vamos ver um exemplo:

input_1 = 10.23
input_2 = 20.34
input_3 = 30.45

# usando f-string a partir do Python 3.6+, mude para format() para versões mais antigas
print(f'Concatenation of {input_1} and {input_2} is {str(input_1) + str(input_2)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{str(input_1)},{str(input_2)},{str(input_3)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{", ".join([str(input_1),str(input_2),str(input_3)])}')

Vamos executar este código:

Concatenation of 10.23 and 20.34 is 10.2320.34
CSV from 10.23, 20.34 and 30.45:
10.23,20.34,30.45
CSV from 10.23, 20.34 and 30.45:
10.23, 20.34, 30.45

Concatenar 10.23 e 20.34 produz a string '10.2320.34'. Este código também gera duas versões de valores separados por vírgula (CSV).

Se não convertermos o decimal para string no programa acima, a função join() lançará uma exceção. Além disso, não conseguiremos usar o operador + para concatenar, pois ele adicionará os números de ponto flutuante.

Conclusão

Você pode conferir o script Python completo e mais exemplos em Python do nosso repositório GitHub.

Referências:

Source:
https://www.digitalocean.com/community/tutorials/python-convert-string-to-float