【发布时间】:2012-11-19 17:16:06
【问题描述】:
假设我们有一个表示二进制分数的字符串,例如:
".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 中执行此操作的内置或标准方法?
【问题讨论】:
-
出于好奇,你需要这个做什么?