如何提高python的计算精度

如题所述

可以使用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个回答  2021-10-17
1.round()内置方法
round()如果只有一个数作为参数,不指定位数的时候,返回的是一个整数,而且是最靠近的整数(这点上类似四舍五入)。但是当出现.5的时候,两边的距离都一样,round()取靠近的偶数,这就是为什么round(2.5) = 2。当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的这样情况,如果要取舍的位数前的小树是奇数,则直接舍弃,如果偶数这向上取舍。看下面的示例:
>>> round(2.635, 2)2.63>>> round(2.645, 2)2.65>>> round(2.655, 2)2.65>>> round(2.665, 2)2.67>>> round(2.675, 2)2.67
2. 使用格式化(效果和round()是一样的。)
>>> a = ("%.2f" % 2.635)>>> a'2.63'>>> a = ("%.2f" % 2.645)>>> a'2.65'>>> a = int(2.5)>>> a2
第2个回答  2021-09-27
可以使用decimal模块来设置计算的精度。举个例子。

1234567

>>> from decimal import *>>> getcontext().prec = 6>>> Decimal(1) / Decimal(7)Decimal('0.142857')>>> getcontext().prec = 28>>> Decimal(1) / Decimal(7)Decimal('0.1428571428571428571428571429')
第3个回答  2014-03-22
2.x?
表达式*1.0就可以了
>>> 1/7
0
>>> 1.0*1/7
0.14285714285714285
或者你整个模块都要小数的话
>>> from __future__ import division
>>> 1/7
0.14285714285714285
第4个回答  2014-08-15
整数:不用
实数:decimal
相似回答