如何在 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: 6Float 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, inprint(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 上。