def factorial(n):
if n == 1:
return n
else:
return n*factorial(n-1)
def sin(x):
OddNumber = 3
counter = 1
NumberOfTerms = 80
while counter < NumberOfTerms:
x -= (x**OddNumber)/(factorial(OddNumber))
OddNumber += 2
counter += 1
x += (x**OddNumber)/(factorial(OddNumber))
OddNumber += 2
counter += 1
return x
theta = float(input("input angle in degrees: "))
theta = float((theta*math.pi/180))
print(sin(theta))
这是我用来寻找x角sin近似值的代码。我想增加变量NumberOfTerms来提高精度,但当我这样做时,我得到了这个错误
OverflowError: int too large to convert to float
我怎样才能避开这件事?有没有办法绕过这个问题
当您使用倒数阶乘值时,代码可以很好地处理较高的
NumberOfTerms
相关问题 更多 >
编程相关推荐