Python 如何计算为浮点数存储的二进制近似值的真正十进制值
上面说,我正在调查 如果Python要打印为0.1存储的二进制近似值的真正十进制值,则必须显示Python 如何计算为浮点数存储的二进制近似值的真正十进制值,python,Python,上面说,我正在调查 如果Python要打印为0.1存储的二进制近似值的真正十进制值,则必须显示 >>> 0.1 0.1000000000000000055511151231257827021181583404541015625 我的问题是,是否存在可以用来获取长字符串值的现有API 还是我必须手工做?像 target = 0.1 tem = 0.0 for i in range(-1, -307, -1): if (2 ** i < target):
>>> 0.1
0.1000000000000000055511151231257827021181583404541015625
我的问题是,是否存在可以用来获取长字符串值的现有API
还是我必须手工做?像
target = 0.1
tem = 0.0
for i in range(-1, -307, -1):
if (2 ** i < target):
if (tem + 2 ** i < target):
tem += 2 ** i
print(i)
else:
break
target=0.1
tem=0.0
对于范围(-1,-307,-1)内的i:
如果(2**i<目标):
如果(tem+2**i<目标):
tem+=2**i
印刷品(一)
其他:
打破
这个代码块只是为了演示我想要得到什么
我在里面搜索,发现人们只是引用了文档而没有提供实现。在我自己的谷歌搜索中偶然发现了这一点,并在其他地方找到了解决方案(这里有@PM 2RING提到)
format选项允许您强制变量显式包含53个小数点,然后将其存储为字符串
print({.53f})。format(target))
BTW,计算机是以二进制方式工作的,因此从某种意义上说,二进制值是浮点值的真值,十进制表示是近似值@下午。由于二进制分数在十进制中总是不重复的,OP要求的是存储在二进制中的真实值
a = ('{:.53f}'.format(target))