状态:一周左右后接受最佳可用答案并表示感谢。等待/邀请更多带有引用的答案
这件事很复杂。我非常感谢所有评论员,特别是 asciimo、Gabe Sechan、AlexWien。请在适当研究后投票和/或进一步回答。
塞纳里奥:
Location.getLatitude()
in android返回具有低精度的double。
Api http://developer.android.com/reference/android/location/Location.html
例子:
Edit-2 开始
我只是尝试通过模拟器发送 GPS 坐标,并将 111.422006 自动转换为 111.422004999999998Double dlongi = loc.getLongitude(); String longi = dlati.toString(); System.out.println(longi);
Edit-2 结束
Edit-3 开始
我通过模拟器(实际上是通过 GPS 设备)将坐标发送为 111.422006,android API 将其接收为双精度值 111.42004999999998
编辑3结束
太晚了: BigDecimal 类已经太晚了,因为它已经给出了 ad/Double。
问题: 如果要求完全准确怎么办。
有什么方法可以高精度或以双打以外的其他形式获得它?
只是想分享并让其他人也注意到这一点。
要求:
在您确定用citation
. 这将有助于社区。
编辑:
看起来普通 GPS 设备的 Gps 坐标是不是 100% 完全准确,例如接近 3 米,但看起来双精度进一步降低。这实际上是我的问题。