Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python精确处理_Python_Python 3.x_Math_Rsa_Precision - Fatal编程技术网

Python精确处理

Python精确处理,python,python-3.x,math,rsa,precision,Python,Python 3.x,Math,Rsa,Precision,我只是想知道为什么这两张照片的输出不一样。我想计算Eulers到entent Func。 对于未来,如果有人能告诉我python如何处理大数字(60+位数)以及如何使用它们,那就太酷了 多谢各位 import math a = (math.pow(19,6)-math.pow(19,5)) b = (math.pow(53,4)-math.pow(53,3)) c = (36) d = (math.pow(101,3)-math.pow(101,2)) print(a) print(b) pri

我只是想知道为什么这两张照片的输出不一样。我想计算Eulers到entent Func。 对于未来,如果有人能告诉我python如何处理大数字(60+位数)以及如何使用它们,那就太酷了

多谢各位

import math
a = (math.pow(19,6)-math.pow(19,5))
b = (math.pow(53,4)-math.pow(53,3))
c = (36)
d = (math.pow(101,3)-math.pow(101,2))
print(a)
print(b)
print(c)
print(d)
y= int(a)*int(d)*int(c)*int(b)
print(int(y))
print(int(a*b*c*d))
输出为:

44569782.0
7741604.0
36
1020100.0
12671169797620641340800
12671169797620641038336

我假设这是由于大数上的浮点错误造成的。对整数使用内置的
pow
**
运算符,而不是
math.pow
。由于
pow
**
返回整数,因此不需要显式转换为整数。此外,变量周围不需要括号,这会降低可读性:

a = 19 ** 6 - 19 ** 5
b = 53 ** 4 - 53 ** 3
c = 36
d = 101 ** 3 - 101 ** 2
print(a)
print(b)
print(c)
print(d)
y = a * b * c * d
print(y)
print(int(a * b * c * d))


我要提到的是,在这种情况下转换为int是不必要的Python整数可以任意大。另一方面,浮点数的精度为53位二进制数字,或大约17/18位十进制数字(在标准硬件上)。在你想要的60岁的地区没有任何地方。查看模块
mpmath
44569782
7741604
36
1020100
12671169797620641340800
12671169797620641340800