gpt4 book ai didi

Java:三角函数和双重误差导致 NaN

转载 作者:行者123 更新时间:2023-11-30 05:04:00 26 4
gpt4 key购买 nike

我有一个使用纬度和经度的距离公式:

distance = EARTH_MILES_RADIUS
* Math.acos(Math.sin(lat1 / RADIAN_CONV)
* Math.sin(lat2 / RADIAN_CONV)
+ Math.cos(lat1 / RADIAN_CONV)
* Math.cos(lat2 / RADIAN_CONV)
* Math.cos((lng2 - lng1) / RADIAN_CONV));

lat1,lng1,lat2,lng2 是双基元。它们作为双重原语来找我,我对此无能为力。

问题是,当我有一对相同的经度或纬度时,公式有时会返回 NaN。我相信这是因为我取的是一个略大于 1 的数字的反余弦,而实际上它应该正好是 1。如果这些点也是对映的,我可能会遇到问题,它们可能略小于 - 1.

我怎样才能最好地解决这个问题?

最佳答案

如果您确实像我认为的那样计算大圆距离,您应该使用 Vincenty 公式而不是您现有的公式。

http://en.wikipedia.org/wiki/Great-circle_distance

关于Java:三角函数和双重误差导致 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5725101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com