发布时间: 阅读量

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);
    }

}