一个报表,要计算两点距离,用到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时,公式直接成立;
- a<0,b>0,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(角度制)。</b>
复制代码
我用其他方法计算一下了atan2(-2,2),结果如下
python3: -0.7853981633974483
js: -0.7853981633974483
java: -0.7853981633974483
|