我有一个函数,我想返回一个十进制数字1.0000 [不是字符串],我怎样才能做到这一点,而不使用NUMPY或SCIPY?无论我做什么,它都会返回1.0。Python函数返回十进制精度
-1
A
回答
0
无论您如何编写Python,浮点数的精度都是大约16位数。 1.0
与1.0000
的数字相同。差异不在数字中,而是在显示涉及的数字到字符串转换中。因此,按照您的说法,唯一可以做到的就是根据您的条款将其转换为字符串:"{:.4f}".format(1.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')