当前位置: 首页 > 面试题库 >

Java:关于弧度,Math.cos,Math.sin,double和long的问题

寇桐
2023-03-14
问题内容

我需要在我的Java代码中实现harvesine距离。

我在Javascript中找到了此代码段,我需要将其转换为Java。

  1. 如何在Java中将纬度和经度转换为弧度?
  2. Math.sin希望用Java加倍。是否应该以弧度传递先前转换的值?
  3. Math.sin和Math.cos返回很长。我应该声明一个long并将其传递给Math.sqrt还是将其转换为double?

谢谢

dLat = (lat2-lat1).toRad();
dLon = (lng2-lng1).toRad(); 
a = Math.sin(dLat/2) * Math.sin(dLat/2) +
    Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
    Math.sin(dLon/2) * Math.sin(dLon/2); 
c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
d = R * c;
return d;

问题答案:

我在这里找到了解决方案:

如何在Java中基于两个纬度+经度点测量距离并创建边界框?



 类似资料:
  • 问题内容: 我正在使用,但它会返回如下所示的意外结果: 为什么我得到这些结果? 问题答案: 您是否要使用学位?请记住,并且期望弧度。

  • 问题 你需要实现弧度和度之间的转换。 解决方案 使用 JavaScript 的 Math.PI 和一个简单的公式来转换两者。 # 弧度转换成度 radiansToDegrees = (radians) -> degrees = radians * 180 / Math.PI radiansToDegrees(1) # => 57.29577951308232 # 度转换成弧度 degr

  • 问题内容: 当存储通常为以下格式的纬度/经度时:44.087585(即,点和6dp前最多2个数字)我是否需要打扰大数位数? 问题答案: 使用double精度足以将纬度/经度降低至英寸,精确到6-7小数位。在航空中,如果使用小数位,则它们通常至少达到7个小数位。在我们的NASA模拟中,纬度/经度数据是双倍的,而所有其他姿态和高度都是浮点的。换句话说,海拔高度的小数点后第六位并不重要,而纬度/经度的小

  • 本文向大家介绍Java BigDecimal和double示例及相关问题解析,包括了Java BigDecimal和double示例及相关问题解析的使用技巧和注意事项,需要的朋友参考一下 BigDecimal类 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。Bi

  • 问题内容: 在C ++中,我喜欢通过或通过访问64位无符号整数。现在,在Java中,我知道long是64位。但是,它们已签名。 是否有无符号长(长)可用作Java原语?如何使用? 问题答案: 我不相信 一旦您想做的比有符号的长,我认为BigInteger是唯一的方法。

  • 问题内容: 所以我正在学习Java,但是我有一个问题。看来,类型,并且将是只是我会永远需要的变量方面的一切,也许除外好时,需要在多个十进制数字都可以使用。 我的问题是,其他类型的如,,,等曾经在正常的日常编程中使用?这些可以用于哪些实际用途?它们的作用是什么? 问题答案: 除了“ short”(可能是对空间的浪费)之外,“ short”可能是一个例外-有时候,从字面上看,它们都是上课的动力: 当您