Python中的浮点精度

Mil*_*avi 2 python math floating-point precision floating-point-precision

我在python中编写了这个函数:

import math

def radical(a, b, k): 
    return (1-((a**2-b**2)/a**2)*(math.sin(math.pi*(2*k-1)/180))**2)**.5

def f(a, b): 
 sigma = 0 
 for k in range(1,180/4):
    sigma = sigma + radical(a, b, k)
 return 8*a*math.sin(math.pi/180)*sigma

print f(25.,35.)
Run Code Online (Sandbox Code Playgroud)

当我在Wolphramapha和Maple中计算这个函数时,我会得到189.797但是使用python 我会得到184.91089913 我的程序有什么问题?

Mar*_*ers 6

你是一个人.该range方法排除了终点.尝试添加一个:

for k in range(1,180/4 + 1):
Run Code Online (Sandbox Code Playgroud)

结果:189.797208409