# Python string em float: aprenda a convertê-lo

As conversões de string para float do Python podem ser utilizadas para evitar erros ao incluir cadeias não numéricas em operações aritméticas.

## Requisitos para a conversão

Para converter strings Python em floats, a string deve ter uma **representação numérica válida de um número de ponto flutuante**, ou seja, pode conter números no formato decimal, incluindo pontos decimais ou notação científica (por exemplo: `"3.14"` ou `"2.7e-3"`). A string não deve conter caracteres extra, espaços ou caracteres inválidos que não representem valores numéricos. Caso contrário, a conversão poderá falhar.

A conversão de string para float em Python é uma função básica e está disponível em todas as versões do Python, mas pode haver nuances ao usar certos métodos ou funções, dependendo da versão. Tenha em atenção que podem ocorrer erros durante a conversão, incluindo a introdução de strings que não representam um número válido. Valores especiais como `NaN` (Not a Number) ou `Infinity` não podem ser convertidos em floats. Os programadores devem saber como lidar com os erros que aparecem durante as conversões, por exemplo, utilizando **blocos try except** para os tratar como exceções.

## Converter strings Python utilizando `float()`

A função `float()` é um **método integrado do Python** que converte uma cadeia de caracteres num número de ponto flutuante (float). A função `float()` é normalmente utilizada para mapear as entradas do utilizador de cadeias de caracteres para formatos numéricos, com o objetivo de realizar cálculos ou operações sobre valores numéricos. Em programas que trabalham com diferentes tipos de dados, `float()` é usado para garantir a consistência dos mesmos, pois converte os valores para o formato numérico desejado.

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

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

Você também pode converter outros tipos numéricos, como `int` ou `complex`, em um número de vírgula flutuante, passando-os para a função `float()`.

Pode utilizar um bloco try except para detetar **entradas inválidas do utilizador** ao converter uma string num 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 anterior é um **loop que solicita aos utilizadores que introduzam um número**. Em seguida, tenta-se converter o valor introduzido num número de vírgula flutuante. Dentro do bloco try, utiliza-se `float(user_input)` para converter a cadeia introduzida num float. Se a conversão funcionar, o número é armazenado em `float_value` e impresso. Em seguida, utiliza-se a instrução `break` para terminar o loop e continuar com o programa.

Se ocorrer um **ValueError** durante a conversão de string para float em Python, o código é executado no bloco except. Isso pode acontecer se os utilizadores introduzirem algo que não pode ser convertido em float, como uma letra. Nesse caso, eles são informados de que a entrada não é válida e o loop continua para solicitar novamente uma entrada válida.

## Converter string em float em Python com Numpy

Para converter uma string Python em um float com **NumPy**, pode utilizar a função `numpy.float64()`. Assim, a partir de uma string, obterá um valor de ponto flutuante de 64 bits.

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

Primeiro, deve importar **o NumPy para o seu script**, caso ainda não esteja instalado. Depois, pode utilizar o NumPy para aplicar a função `numpy.float64()` à cadeia `string_value`, a fim de converter a cadeia num valor de ponto flutuante de 64 bits.

## Conversão com `str()`

Por outro lado, a função `str()` do Python é utilizada para **converter valores numa string**. Também é possível trabalhar com números de vírgula flutuante para convertê-los numa cadeia.

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

No exemplo anterior, o valor float `3.1416` é convertido pela função `str()` na string `"3.1416"`.

`str()` também é útil para concatenar vários valores float com f strings, que é um formato de string do 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.618
```

Ao converter floats em strings usando `str()`, a string resultante representa o valor como texto e não pode mais ser usada diretamente para cálculos numéricos ou operações matemáticas, a menos que seja primeiro reconvertida para uma forma numérica (como um float).

Dica No nosso Guia Digital, também encontrará um tutorial sobre as conversões [Python string para lista](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/python-string-para-lista/) e [Python string para datetime](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/python-string-to-datetime-chaves-da-conversao/).


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/string-python-em-float/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/string-python-em-float/) for AI/LLM consumption.