Doule类型经纬度转为度分秒且保留三位小数
Doule类型经纬度转为度分秒且保留三位小数

简单点直接贴代码
import java.text.NumberFormat;
/**
* @author zf1017@foxmail.com
* @date 2019/9/16 0016 13:51
* @description double类型经度,纬度转为度分秒且保留三位小数
*/
public class LongitudeUtil {
public static String dblToLocation(double data) {
StringBuffer result = new StringBuffer();
//得到度
int du = (int) data;
result = result.append(String.valueOf(du) + "°");
//得到分
double du1 = data - du;
int min = (int) (du1 * 60);
result = result.append(String.valueOf(min) + "′");
//得到秒
double min1 = du1 * 60 - min;
Double sec = (Double) (min1 * 60);
NumberFormat nf = NumberFormat.getNumberInstance();
// 保留三位小数位小数
nf.setMaximumFractionDigits(3);
String format = nf.format(sec);
result = result.append(format + "″");
return result.toString();
}
public static void main(String[] args) {
Double d =116.37032;
String s = LongitudeUtil.dblToLocation(d);
System.out.println(s);
}
}