Python函数返回十进制精度

时间:2015-09-14 00:20:24

标签: python-2.7 precision

我有一个函数,我想返回十进制数1.0000 [不是字符串],如何在不使用NUMPY或SCIPY的情况下执行此操作?无论我做什么,它都会返回1.0。

2 个答案:

答案 0 :(得分:1)

好像您正在寻找decimal包:

>>> from decimal import *
>>> getcontext().prec = 6
>>> Decimal(1) / Decimal(7)
Decimal('0.142857')
>>> getcontext().prec = 28
>>> Decimal(1) / Decimal(7)
Decimal('0.1428571428571428571428571429')

答案 1 :(得分:0)

无论你如何编写,Python的浮点数的精度大约是16位数。 1.01.0000的号码相同。差异不在数量上,而在于显示中涉及的数字到字符串转换。因此,正如你所说,做你想要的唯一方法就是在你的条款下明确地将它转换为字符串:"{:.4f}".format(1.0)