finereport的atan2函数有问题
一个报表,要计算两点距离,用到atan2函数,一直计算不准确,后来发现,finereport的atan2函数有问题
finereport的函数说明:
ATAN2(x_num,y_num):返回x、y坐标的反正切值。返回角度为x轴与过(x_num,y_num)与坐标原点(0,0)的一条直线形成的角度。该角度以弧度显示。
X_num:指定点的x坐标。
Y_num:指定点的y坐标。
备注:
正值表示从x轴开始以逆时针方式所得的角度;负值表示从x轴开始以顺时针方式所得的角度。
a>0,b>0 or a>0,b<0时,公式直接成立;
a0,ATAN2(a,b)=PI()-ABS(ATAN(b/a))
a<0,b<0,ATAN2(a,b)=ABS(ATAN(b/a))-PI()
当x_num与y_num都为0时,ATAN2返回错误信息*DIV/0!。
用角度制显示返回数值时,把返回数值乘以180/PI()。
返回值以弧度表示(返回值大于-pi且小于等于pi)。
示例:
ATAN2(-2,2)等于2.356194490192345(弧度制的3*pi/4)。
ATAN2(2,2)等于0.785398163(弧度制的pi/4)。
ATAN2(-2,2)*180/PI()等于135(角度制)。
我用其他方法计算一下了atan2(-2,2),结果如下
python3: -0.7853981633974483
js: -0.7853981633974483
java: -0.7853981633974483