Python 如何将二进制浮点转换为10进制浮点,反之亦然?

Python 如何将二进制浮点转换为10进制浮点,反之亦然?,python,binary,floating-point,decimal,python-2.x,Python,Binary,Floating Point,Decimal,Python 2.x,我有一个像“10.1”这样的二进制浮点,我想把它转换成十进制浮点。然后我想对它做一些操作,并将其转换回二进制浮点。Python2中是否有内置程序来实现这一点?如果没有,最短的(以字节为单位)方法是什么?二进制文件没有内置的方法(尽管有from)。最简单的方法是去掉,将其解析为整数,并适当缩放: import math x = "10.1" p = len(x) - x.index(".") - 1 i = int(x.replace(".",""),2) math.ldexp(i,-p) 这假

我有一个像“10.1”这样的二进制浮点,我想把它转换成十进制浮点。然后我想对它做一些操作,并将其转换回二进制浮点。Python2中是否有内置程序来实现这一点?如果没有,最短的(以字节为单位)方法是什么?

二进制文件没有内置的方法(尽管有from)。最简单的方法是去掉
,将其解析为整数,并适当缩放:

import math
x = "10.1"
p = len(x) - x.index(".") - 1
i = int(x.replace(".",""),2)
math.ldexp(i,-p)

这假设您的字符串只包含
0
s、
1
s和一个
(即没有空格或指数)。

您能举个例子吗?二进制浮点“10.1”作为十进制浮点看起来像什么?你会对它做什么操作?当你把它转换回来时会是什么样子?@Kevin它看起来像“2.1”。所做的操作只是一个eval()。有一个带有二进制浮点数的字符串,每个浮点数都转换为以10为基数的浮点数,然后对该字符串求值,然后将结果转换回二进制浮点数。2.1是它将转换为的实际数字,还是这只是它“看起来”的一个示例?请检查“2.1”?还是说“2.5”?
p=x[:-1]。索引('.')