如何在python中更改数值精度?
如果我用python编写1e-15,python可以将该数字与零区分开来,但如果我编写1e-16,python无法将该数字与0区分开来。所以python精确到第16位。是否有办法将该精度降低到例如10位?怎么用?我可以用一些计算吗如何在python中更改数值精度?,python,precision,Python,Precision,如果我用python编写1e-15,python可以将该数字与零区分开来,但如果我编写1e-16,python无法将该数字与0区分开来。所以python精确到第16位。是否有办法将该精度降低到例如10位?怎么用?我可以用一些计算吗 感谢您的帮助。如果您希望在计算中使用精确的算术,强烈建议不要使用默认的float类型。见正式文件的一节 这就是为什么你的生活会好得多。它有几种控制精度的方法 在这里,我们全局更改精度: 来自十进制输入的>>* >>>getcontext().prec=6 >>>十进制
感谢您的帮助。如果您希望在计算中使用精确的算术,强烈建议不要使用默认的
float
类型。见正式文件的一节
这就是为什么你的生活会好得多。它有几种控制精度的方法
在这里,我们全局更改精度:
来自十进制输入的>>*
>>>getcontext().prec=6
>>>十进制(1)/十进制(7)
十进制('0.142857')
>>>getcontext().prec=28
>>>十进制(1)/十进制(7)
十进制(“0.1428571428571428571428571428571429”)
这里我们只针对一个数字:
十进制('0.1428571428571428571428571429')。量化('0.01')
十进制('0.14')
您可以找到更多的示例。看看精度可控的。显示一些代码。区分1e-16和0应该没有问题。我猜他在解释器中键入
>>1e-15
,看到打印的表示值,然后在解释器中键入1e-16
,看到0.0
作为表示。真正的测试类似于1e-256>0
,在这种情况下可以看到true
或False
。表示不是事实……如果我在解释器中键入1e-16
,我将返回1e-16
。不是零。不过这是最新的CPython版本。@gilch:取决于Python解释器的版本,但是比起Python无法处理小数字,您可以更快地表示0.0
。。。