我正在调查python doc,它说
如果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):
if (tem + 2 ** i < target):
tem += 2 ** i
print(i)
else:
break
此代码块仅用于演示我想要得到的内容。
我在SO内进行搜索,发现人们只是引用了该文档而没有提供实现。
答案 0 :(得分:1)
在我自己的Google搜索中偶然发现了这个问题,并在其他地方找到了解决方案(并在此@PM 2RING提到过)。
a = ('{:.53f}'.format(target))
format选项允许您强制变量明确包含53个小数点,然后将其存储为字符串。