SQL Server trig 函数抛出无效的浮点运算



我使用合法的纬度/经度值调用此函数,以尝试计算两点之间的距离。它适用于我所有观点的 99.99%,但在这一点上,它崩溃了:

选择 ACOS(SIN(-34.8821289 * PI((/180( * 信(-34.882129 * PI((/180( + (COS(-34.8821289 * PI((/180(  * COS(-34.882129 * PI((/180(  * COS((150.7406616 - 150.740662( * PI((/180(((/(PI((/180( * 111.325

如何加强函数以检查和处理此问题?

出于性能原因,我真的很想继续使用 trig 函数,而不是本机 SQL Server 地理类型。

该死的,看起来将一些 7 位小数位值与其他 6 位小数位值混合在一起,导致 COS 函数四舍五入等于 1,然后因为 1 超出范围而炸毁了整个 ACOS 函数?

通过将我所有的输入值减少到 6 位似乎已经完全解决了这个问题。

最新更新