我的代码:
backgroundView
可能会有所帮助:在IDLE上运行。计算由巴塞尔问题完成。总是陷入3.14159264498。也永远不会超过11小数点,但有时会降低。应该说我的极限(sqrtt)达到10的10次幂(可能更低但高于10的7次方) 感谢。
答案 0 :(得分:1)
使用典型的python实现,浮点数为64位,精度为53位。那是15到17位有效十进制数字。
https://en.wikipedia.org/wiki/Double-precision_floating-point_format
答案 1 :(得分:1)
Python使用64位浮点数,其精度为15 to 17 decimal digits。
可以找到证明here,我们可以看到python float
值存储为C double(几乎总是64位浮点数)。
typedef struct {
PyObject_HEAD
double ob_fval; // this is the actual float value
} PyFloatObject;
您可以使用decimal.Decimal对象获得无限精度。
计算e
的示例import decimal
import math
decimal.getcontext().prec = 100 # set the precision, can be as large as you like
e = decimal.Decimal(0)
next_e = decimal.Decimal('NaN') # init as not a number
i = 0
while e != next_e:
e, next_e = next_e, e + decimal.Decimal(1) / math.factorial(i)
i += 1
e #--> Decimal('2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166428')
答案 2 :(得分:0)
本教程也非常有用。 Floating Point Arithmetic: Issues and Limitations
python浮点数的精度接近17位数。 “在运行Python的典型机器上,Python浮点数有53位可用精度”。它不仅是蟒蛇,它还是一个标准。所以熟悉它是有用的。