有如下数据
x: float = .00000000000000000001 / 3
y: float = .0000000000000001
想要实现的输出结果:
>>> print(some_func(x))
0.000000000000000000003333333333333333
>>> print(some_func(y))
0.0000000000000001
当前输出结果:
>>> print(y)
1e-16
>>> print('%f' % y)
0.000000
>>> print('{.50f}'.format(y))
0.00000000000000009999999999999999790977867240346036
>>> print(Decimal(y))
9.999999999999999790977867240346035618411149408467364363417573258630000054836273193359375E-17
全部不满足需求。浮点数输出一个人类友好的写法有什么优雅的写法吗?目前能想到的唯一达成目标输出的方法只有将输出结果作为字符串处理,感觉很肮脏。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.