You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Location.distanceBetween返回的1.2886343E7转换为千米?

解决Location.distanceBetween结果转千米的问题

嘿,这个问题我太清楚啦!首先得明确一个关键细节:Android的Location.distanceBetween()方法计算出来的距离单位是米,你得到的1.2886343E7是科学计数法的写法,翻译成常规数字就是12886343米。

要转换成千米的话,操作特别简单——只需要把这个数值除以1000就行。结合你的代码,具体实现可以这样写:

// 先初始化存储结果的数组,数组长度固定为1
double[] result = new double[1];

// 调用distanceBetween计算距离(你的原有代码)
Location.distanceBetween(
    Double.parseDouble(lat1.getText().toString()),
    Double.parseDouble(lng1.getText().toString()),
    Double.parseDouble(lat2.getText().toString()),
    Double.parseDouble(lng2.getText().toString()),
    result
);

// 将米转换为千米
double distanceInKilometers = result[0] / 1000;

// 如果需要把结果格式化成更易读的形式(比如保留两位小数),可以用DecimalFormat
DecimalFormat decimalFormat = new DecimalFormat("#.##");
String formattedDistance = decimalFormat.format(distanceInKilometers);

举个例子,你得到的1.2886343E7米,除以1000后就是12886.343千米,格式化后可以显示为12886.34千米。

内容的提问来源于stack exchange,提问作者husen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:34:38