java 将小数度数转换为度分秒格式

java 将小数度数转换为度分秒格式

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java 将小数度数转换为度分秒格式,希望能够帮助大家进步!!!

 /** * 将经纬度转换为度分秒格式 * @param du 度数 116.418847 * @return 116°25'7.85" */ public static Integer[] changeToDFMArray(double du) { Integer[] dfmArray=new Integer[3];//[0] 度 ,[1] 分 ,[2] 秒 try { //double dd = Convert.ToDouble(str); String str = "" + du; int p = str.indexOf("."); int dt = Integer.parseInt(str.substring(0, p)); du = du - dt; double M = du * 60; int mt = (int) M; M = (M - mt) * 60; if (Math.abs(M - 60) < 0.001) {//秒精确到小数点后三位,小于0.001向前进位,秒为0,分加1,分为60,度加1 M = 0; mt = mt + 1; } if (mt == 60) { dt = dt + 1; mt = 0; } dfmArray[0]=dt; dfmArray[1]=mt ; dfmArray[2]=(int) Math.round(M);// 四舍五入 小数点前整数进位 } catch(Exception e) { logger.error("小数格式度转度分秒异常:"+e.getMessage(),e); } return dfmArray; }

 

本文来源huayang183,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/18277

发表评论