Converter String em Decimal em Python

Vaibhhav Khetarpal 10 outubro 2023
  1. Use a função float() para converter uma string em decimal em Python
  2. Use o tratamento de exceções Converter uma string contendo uma vírgula em uma string em Python
  3. Use a formatação de string junto com a função float() para converter uma string em decimal em Python
  4. Use a compreensão de lista para converter uma lista de strings em flutuante em Python
  5. Use a função numpy.float() para converter uma string em decimal em Python
  6. Use o método astype() da biblioteca NumPy para converter uma string em decimal em Python
  7. Use o módulo decimal para converter uma string em decimal em Python
Converter String em Decimal em Python

Strings em Python podem assumir valores numéricos. Semelhante a outras linguagens de programação populares, Python suporta números inteiros e de ponto flutuante (ou decimais) e possui tipos de dados separados atribuídos a eles. Às vezes, é necessário converter os valores numéricos obtidos em uma string em um número inteiro ou de ponto flutuante.

Este tutorial irá apresentar como converter uma string em decimal em Python.

Use a função float() para converter uma string em decimal em Python

Python fornece uma função embutida chamada float() que é utilizada para transformar uma string ou um inteiro em um valor de ponto flutuante.

Aqui, inseriremos uma string e executaremos a função float() na string fornecida.

O código a seguir usa a função float() para converter uma string em decimal em Python.

a = "5.54"
x = float(a)
print(x)

O código acima fornece a seguinte Resultado:

5.54

Use o tratamento de exceções Converter uma string contendo uma vírgula em uma string em Python

Quando uma vírgula separa os números na string e a função float() é chamada diretamente na string, ela fornece um ValueError.

O código de exemplo a seguir ajudará você a entendê-lo melhor.

a = "1,5.54"
x = float(a)
print(x)

O código acima fornece a seguinte resultado:

Traceback (most recent call last):
  File "<string>", line 2, in <module>
ValueError: could not convert string to float: '1,5.54'

Podemos fazer um desvio rápido do código original e usar o tratamento de exceções neste código para evitar isso.

A instrução try...except é utilizada com o propósito de tratamento de exceções em Python. A instrução try...except é dividida em três blocos; todos os três blocos têm uma finalidade diferente.

  • O bloco try contém o cluster de código a ser testado quanto a erros.
  • O bloco except é usado para adicionar exceções e tratar os erros do código.
  • O bloco finally contém as instruções que precisam ser executadas e é ignorado pelos blocos try e except.

O código a seguir utiliza o tratamento de exceções no código original fornecido acima para converter uma string em decimal em Python.

a = "1,5.54"
try:
    x = float(a)
except ValueError:
    print("Invalid Float number to be converted. ")

O código acima fornece a seguinte Resultado:

Invalid Float number to be converted.

Use a formatação de string junto com a função float() para converter uma string em decimal em Python

Em uma determinada string, se quisermos especificar o número de pontos decimais que queremos na variável de ponto flutuante, podemos usar a formatação de string junto com a função integrada float().

O código a seguir usa formatação de string para converter uma string em decimal em Python.

a = "5.54231"
x = float(a)
x = "{:.2f}".format(x)
print(x)

O código acima fornece a seguinte Resultado:

5.54

Use a compreensão de lista para converter uma lista de strings em flutuante em Python

A compreensão de listas é uma maneira relativamente mais curta e muito elegante de criar listas que devem ser formadas com base nos valores dados de uma lista já existente.

Podemos usar a compreensão de lista e converter todos os valores dentro da lista em valores de ponto flutuante usando o método float() na compreensão de lista.

O código a seguir usa compreensão de lista para converter uma lista de strings para flutuar no Python.

lst = ["1.22", "5.54", "6.858"]
x = [float(i) for i in lst]
print(x)

O código acima fornece a seguinte saída.

[1.22, 5.54, 6.858]

Use a função numpy.float() para converter uma string em decimal em Python

O termo NumPy é um acrônimo para Numerical Python. Esta biblioteca possibilita o uso de arrays em Python. Ele também fornece funções que ajudam na manipulação dessas matrizes.

A função numpy.float() funciona de forma semelhante à função float() embutida no Python, com a única diferença sendo que a função numpy.float() é feita para funcionar com matrizes. Ele sempre gera um array de valores de ponto flutuante.

O código a seguir usa a função numpy.float() para converter uma string em decimal em Python.

import numpy as np

lst = ["1.22", "5.54", "6.858"]
print(list(np.float_(lst)))

O código acima fornece a seguinte Resultado:

[1.22, 5.54, 6.858]

Use o método astype() da biblioteca NumPy para converter uma string em decimal em Python

A biblioteca NumPy contém um método integrado astype() que auxilia na conversão do tipo de dados do array NumPy fornecido.

O código a seguir usa o método astype() da biblioteca NumPy para converter uma string em decimal em Python.

import numpy as np

a = np.array(["1.22", "5.54", "6.858"])
x = a.astype(float)
print(x)

O código acima fornece a seguinte Resultado:

[1.22  5.54  6.858]

Use o módulo decimal para converter uma string em decimal em Python

O módulo decimal fornece funções que realizam operações mais rápidas do que as funções de ponto flutuante de estoque.

A função decimal.Decimal(), que é um construtor, recebe a entrada como um valor numérico e realiza o processo para convertê-lo para o tipo decimal, que é ideal para armazenar e representar os valores numéricos, preservando estritamente a precisão de o número.

O código a seguir usa o módulo decimal para converter uma string em decimal em Python.

from decimal import Decimal

a = "5.54262"
x = Decimal(a)
print(x)

O código acima fornece a seguinte Resultado:

5.54262
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Artigo relacionado - Python String

Artigo relacionado - Python Float