【发布时间】:2018-01-29 13:05:07
【问题描述】:
我有一个包含一些浮点值的字典。
当我按原样打印字典时,我会完全准确地打印这些值。
但是,当我尝试分别打印每个值时,我会将它们截断。
一个简单的代码示例来说明问题:
d = {'x': 0.010000000000000231}
print d # outputs {'x': 0.010000000000000231}
print d['x'] # outputs 0.01
现在,我当然可以使用format 来解决这个问题,即在上面的示例中:
print '{:.18f}'.format(d['x']) # outputs 0.010000000000000231
但是,我希望避免这种解决方案。
首先,因为我不知道字典中每个条目所需的确切精度。其次,因为我更喜欢避免繁琐的编码类型,这涉及到指定每个字段的打印格式。
换句话说,我想做这样的事情:
print 'x = {}'.format(d['x'])
或者:
print 'x =',d['x']
并得到d['x'] 的完整精度打印值。
为什么 Python 解释器会为 d 和 d['x'] 选择不同的打印格式,我可以在这里采取什么方法来达到我的目的?
【问题讨论】:
-
你可以使用
decimal模块 - docs.python.org/2/library/decimal.html
标签: python python-2.7 dictionary floating-point