在 Python 中将字符串转换为小数

Python 中的字符串可以采用数字值。与其他流行的编程语言类似,Python 支持整数和浮点(或十进制)数,并为它们分配了单独的数据类型。有时,需要将字符串中的数值转换为整数或浮点数。

本教程将介绍如何在 Python 中将字符串转换为小数。

在 Python 中使用 float() 函数将字符串转换为小数

Python 提供了一个名为 float() 的内置函数,用于将字符串或整数转换为浮点值。

在这里,我们将输入一个字符串并对给定的字符串执行 float() 函数。

以下代码使用 float() 函数在 Python 中将字符串转换为小数。

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

上面的代码提供了以下输出:

5.54

使用异常处理将包含逗号的字符串转换为 Python 中的字符串

当逗号分隔字符串中的数字并且直接在字符串上调用 float() 函数时,它会给出 ValueError

下面的示例代码将帮助你更好地理解它。

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

上面的代码提供了以下输出:

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

我们可以快速绕过原始代码,并在此代码中使用异常处理来避免这种情况。

try...except 语句用于 Python 中的异常处理。try...except 语句分为三个块;所有三个块都有不同的目的。

  • try 块包含要测试任何错误的代码簇。
  • except 块用于添加异常和处理代码错误。
  • finally 块包含需要执行的语句,并被 try 和 except 块忽略。

下面的代码利用上面给出的原始代码的异常处理在 Python 中将字符串转换为小数。

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

上面的代码提供了以下输出:

Invalid Float number to be converted.

在 Python 中使用字符串格式和 float() 函数将字符串转换为十进制

在给定的字符串中,如果我们想指定我们想要在浮点变量中包含的小数点数,那么我们可以使用字符串格式化以及内置的 float() 函数。

以下代码使用字符串格式在 Python 中将字符串转换为十进制。

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

上面的代码提供了以下输出:

5.54

在 Python 中使用列表推导将字符串列表转换为浮点数

列表推导式是一种相对较短且非常优雅的方式,用于创建基于现有列表的给定值形成的列表。

我们可以使用列表推导并使用列表推导中的 float() 方法将列表中的所有值转换为浮点值。

以下代码使用列表推导将字符串列表转换为 Python 中的浮点数。

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

上面的代码提供了以下输出。

[1.22, 5.54, 6.858]

在 Python 中使用 numpy.float() 函数将字符串转换成小数

术语 NumPy 是 Numerical Python 的首字母缩写词。这个库使得在 Python 中使用数组成为可能。它还提供了有助于操作这些数组的函数。

numpy.float() 函数的工作方式类似于 Python 中内置的 float() 函数,唯一的区别是 numpy.float() 函数用于处理数组。它总是生成一个浮点值数组。

以下代码使用 numpy.float() 函数在 Python 中将字符串转换为小数。

import numpy as np
lst= [ '1.22', '5.54', '6.858']
print(list(np.float_(lst)))

上面的代码提供了以下输出:

[1.22, 5.54, 6.858]

在 Python 中使用 NumPy 库中的 astype() 方法将字符串转换为小数

NumPy 库包含一个内置的 astype() 方法,该方法有助于转换给定 NumPy 数组的数据类型。

以下代码使用 NumPy 库中的 astype() 方法在 Python 中将字符串转换为小数。

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

上面的代码提供了以下输出:

[1.22  5.54  6.858]

在 Python 中使用 decimal 模块将字符串转换为小数

decimal 模块提供的函数执行速度比常用浮点函数更快。

decimal.Decimal() 函数是一个构造函数,将输入作为数值并执行将其转换为十进制类型的过程,非常适合存储和表示数值,同时严格保持精度号码。

以下代码使用 decimal 模块在 Python 中将字符串转换为小数。

from decimal import Decimal
a = '5.54262'
x = Decimal(a)
print(x)

上面的代码提供了以下输出:

5.54262