如何将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
相关产品推荐
相关产品推荐

