假设我们有一个表示二进制小数的字符串,例如:
".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中是否有内置或标准方法可以实现这个功能?