让我们假设我们有一个表示二进制分数的字符串,例如:
".1"
作为十进制数,这是 0.5。Python中是否有一种标准方法可以将此类字符串转换为数字类型(无论是二进制还是十进制都不是很重要)。
对于整数,解决方案很简单:
int("101", 2)
>>>5
int() 采用可选的第二个参数来提供基数,但 float() 没有。
我正在寻找与此功能等效的东西(我认为):
def frac_bin_str_to_float(num):
"""Assuming num to be a string representing
the fractional part of a binary number with
no integer part, return num as a float."""
result = 0
ex = 2.0
for c in num:
if c == '1':
result += 1/ex
ex *= 2
return result
我认为这就是我想要的,尽管我很可能错过了一些边缘情况。
在 Python 中是否有内置或标准的方法来执行此操作?