如何在 Python 中将字符串转换为浮点数

要执行乘法和除法等数学计算,我们必须将数据从字符串显式解析为浮点数或整数。

x = input('Enter value: ')
print(type(x))

查看输出。

Enter value: 5

可以看到,即使我们输入了一个整数,这里的数据类型也是String。 因此,我们必须将其转换为受尊重的数据类型; 否则,它将破坏程序并抛出 ValueError。

Python字符串浮动

要在 Python 中将字符串转换为浮点数,请使用 float() 函数。 Python float() 是一个将字符串转换为浮点数的内置函数。 float() 函数在内部调用指定对象的 __float__() 函数。

隐式混合浮点数/整数可能会导致细微的错误,因为在使用浮点数时可能会丢失精度或浮点数/整数上的 / 运算符的不同结果。 根据上下文,最好返回 int 或 Float,而不是两者。

x = input('Enter value: ')
print(type(x))

floatVal = float(x)

print('Float Value=", floatVal)
print(type(floatVal))

输出

Enter value: 6

Float Value = 6.0

示例 2

stringData="21.19114618"

floatVal = float(stringData)

print('Float Value=", floatVal)
print(type(floatVal))

输出

Float Value = 21.19114618

如何检查项目是否可转换为浮动

要在终端中从用户那里获取输入并输入整数值,然后使用 type() 函数检查值的类型,它会返回 String。

这意味着,默认情况下,input() 值的返回数据类型是 String。

要检查元素是否可转换,请定义自定义函数。

pton = '1.1'
qton = 11
zton = False
xyz = 'Wubba Lubba Dub Dub'


def is_convertible_to_float(value):
    try:
        float(value)
        return True
    except:
        return False


print(is_convertible_to_float(pton))
print(is_convertible_to_float(qton))
print(is_convertible_to_float(zton))
print(is_convertible_to_float(xyz))

输出

True
True
True
False

这三种情况都可以转换成float,但是字符串不能转换成Float。 这就是最后一个返回 False 的原因,因为 Python 无法将字符串转换为浮点数。

Python ast.literal_eval()

ast.literal_eval() 函数可以安全地评估包含来自不受信任来源的 Python 表达式的字符串,而无需自己解析这些值。

请参阅以下代码。

import ast

pton = '1.1'

print(ast.literal_eval(pton))

输出

python3 app.py
1.1

这种方法并不总是适合,因为这是有原因的。

让我们看看下面的例子。

import ast

qton = 11

print(ast.literal_eval(qton))

Str() 函数将 11 个整数转换为浮点数,但 ast.literal_eval() 函数在此处抛出 ValueError。 运行程序,你会得到以下信息。

Traceback (most recent call last):
  File "app.py", line 5, in 
    print(ast.literal_eval(qton))
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ast.py", line 96, in literal_eval
    return _convert(node_or_string)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ast.py", line 95, in _convert
    return _convert_signed_num(node)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ast.py", line 74, in _convert_signed_num
    return _convert_num(node)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ast.py", line 66, in _convert_num
    raise ValueError('malformed node or string: ' + repr(node))
ValueError: malformed node or string: 11

看,你得到了 ValueError: malformed node or String: 11。

这不是解决问题的好方法。

Python浮动到字符串

要在 Python 中将浮点数转换为字符串,请使用 str() 函数。 str() 是一个内置的 Python 函数,用于将指定的值转换为字符串。 当我们想要连接浮点值时,有时可能需要 str() 函数。

# app.py

pton = 1.1
qton = 1.11
zton = 1.111

print(f'Concatenation of {pton} and {qton} is {str(pton) + str(qton)}')
print(
    f'Data from {pton}, {qton} and {zton}:\n{str(pton)},{str(qton)},{str(zton)}')
print(
    f'Data from {pton}, {qton} and {zton}:\n{", ".join([str(pton),str(qton),str(zton)])}')

输出

Concatenation of 1.1 and 1.11 is 1.11.11
Data from 1.1, 1.11 and 1.111:
1.1,1.11,1.111
Data from 1.1, 1.11 and 1.111:
1.1, 1.11, 1.111

结论

Python float() 函数将 String 转换为 Float 数据类型。

Python str() 函数可以将 Float 转换为 String 数据类型。

也可以看看

Python字符串到整数

要列出的 Python 字符串

Python字符串到日期时间

Python字符串到json

如何在 Python 中将字符串转换为浮点数的帖子首先出现在 AppDividend 上。

资讯来源:由0x资讯编译自APPDIVIDEND,版权归作者Krunal所有,未经许可,不得转载
你可能还喜欢