ABAP 里没有 math.hypot,但可以写出更适合生产系统的距离计算工具

ABAP 里没有 math.hypot,但可以写出更适合生产系统的距离计算工具

把 Python 里的math.hypot(dx, dy)搬进 ABAP 时,最容易产生的误会,是以为 SAP 一定提供了某个与math模块一一对应的工具类,找到类名以后直接调用即可。ABAP 的组织方式并不是这样。它确实有一组内置数值函数,也有名为CL_ABAP_MATH的系统类,但常见的平方根、三角函数、指数函数和对数函数,主要以 ABAP 语言内置函数的形态出现,而不是集中放进一个与 Pythonmath完全同构的类库里。

当前 ABAP Cloud 关键字文档的数值函数清单明确包含sqrt,内置函数总览也把它归入浮点函数,但清单中没有一个名为hypot的 ABAP 内置函数。因而,针对math.hypot(dx, dy)这类需求,准确答案是,ABAP 有所需的基础数学能力,却没有同名、同接口、同数值算法承诺的标准hypot函数。(SAP Help Portal)

Python 当前文档把math.hypot定义为坐标向量的欧几里得范数。二维情况下,它对应直角三角形斜边,也就是sqrt(dx * dx