# Tutorial: Converter Python string para float

A conversão Python string para float ajuda a evitar erros em tentativas de se realizar operações aritméticas com valores numéricos.

## Requisitos para converter string para float em Python

Em Python, para converter uma string para float, essa string deve ter uma **representação numérica válida de um número de ponto flutuante**. Isso quer dizer que ela pode incluir números no formato decimal, pontos decimais e até notações científicas (por exemplo: `"3.14"` ou `"2.7e-3"`). A string em questão também deve estar livre de caracteres adicionais, espaços ou caracteres inválidos, que não representem valores numéricos. Caso contrário, a conversão pode resultar em um erro.

A conversão Python string para float é uma funcionalidade básica dessa linguagem de programação, estando disponível em todas as suas versões. No entanto, diferentes versões de Python podem acarrear nuances na utilização de métodos e funções relacionadas. Assim, você deve considerar a possibilidade de ocorrência de erros durante processos de conversão, principalmente com strings contendo números inválidos. Embora valores especiais, como `NaN` (*Not a Number*) e `Infinity`, possam ser representados como floats em Python, tentar converter strings que não correspondam corretamente a esses valores pode resultar em erros. Portanto, o tratamento de conversões requer uma adequada gestão de erros pelos desenvolvedores. Isso pode incluir, por exemplo, o uso de **blocos Try-Except** para capturar exceções e reagir de forma apropriada.

## Converter strings com `float()`

A função `float()` é um **método embutido em Python** que converte uma string em um número de ponto flutuante (float). Assim, `float()` é frequentemente utilizada para transformar entradas de usuários em formatos numéricos, permitindo a realização de cálculos ou operações com valores numéricos. Em programas que lidam com diferentes tipos de dados, `float()` é utilizada para garantir a consistência dos dados, convertendo valores para o formato numérico desejado.

Para converter string para float em Python, você deve passar uma string válida como argumento para a função `float()`.

```python
str1 = "3.1416"
float_value = float(str1)
print(float_value) # Output: 3.1416
```

Outros tipos numéricos, como `int` e `complex`, também podem ser convertidos em números de ponto flutuante ao serem passados para a função `float()`.

Com um bloco Try-Except, você pode **capturar entradas inválidas** ao tentar converter uma string para float.

```python
while True:
    user_input = input("Enter a number: ")
    try:
        float_value = float(user_input)
        print("Entered number as float:", float_value)
        break # Exit the loop if the conversion was successful
    except ValueError:
        print("Invalid input! Please enter a numeric value.")
        # The loop continues to prompt for valid input
```

O código acima é um **loop que solicita ao usuário a inserção de um número**. Em seguida, ele converte o valor inserido em um número de ponto flutuante. Dentro do bloco Try, a função `float(user_input)` é usada para converter a string inserida em float. Se a conversão for bem-sucedida, o número em `float_value` é armazenado e exibido. Em seguida, a instrução `break` termina o loop e continua o programa.

Se ocorrer algum tipo de **ValueError** durante a conversão, o código contido no bloco Except será executado. Isso pode acontecer se o usuário inserir algo que não pode ser convertido em float, como uma letra. Nesse caso, a entrada inválida será informada e o loop continuará, solicitando uma nova entrada válida.

## Converter string para float em Python com NumPy

Para converter uma string em float com **NumPy**, você pode usar a função `numpy.float64()`. Isso irá criar um valor de ponto flutuante de 64 bits a partir de uma string.

```python
import numpy as np
string_value = "3.1416"
float_value = np.float64(string_value)
print(float_value) # Output: 3.1416
```

Primeiramente, você deve **importar o NumPy para o seu script**, caso ele ainda não esteja instalado. Depois disso, você poderá aplicar a função `numpy.float64()` à string `string_value` para converter a string em um valor de ponto flutuante de 64 bits.

## Converter string para float em Python com `str()`

Por sua vez, a função `str()` em Python serve para **converter valores em uma string**. Ela também pode ser usada com números de ponto flutuante e convertê-los em uma representação de string.

```python
float_number = 3.1416
string_number = str(float_number)
print(string_number) # Output: "3.1416"
```

No exemplo acima, o valor float `3.1416` é convertido para a string `"3.1416"` por meio da função `str()`.

A função `str()` também é útil para concatenar vários valores float usando f-strings, um [formato de string em Python](https://www.ionos.com/digitalguide/websites/web-development/python-string-format/ "Formatos de string em Python").

```python
float_value1 = 3.1416
float_value2 = 2.7182
float_value3 = 1.6180
string_concatenation = f"Concatenation of: {str(float_value1)}, {str(float_value2)}, and {str(float_value3)}"
print(string_concatenation) # Concatenation of: 3.1416, 2.7182, and 1.6180
```

É importante observar que, ao converter floats em strings com `str()`, a string resultante representará o valor como texto, não podendo ser usada diretamente para cálculos numéricos ou operações matemáticas. Isso poderá ser feito, contudo, caso uma conversão reversa seja realizada, de volta à forma numérica (float).

Dica Nosso Digital Guide também ensina você a converter [Python strings em listas](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-string-to-list/) e [Python strings em datetime](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/converter-python-string-em-datetime/).


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/converter-python-string-para-float/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/converter-python-string-para-float/) for AI/LLM consumption.