java度分秒转换度
生活随笔
收集整理的這篇文章主要介紹了
java度分秒转换度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*** 經緯度轉換 ,度分秒轉度* @param str* @author Cai_YF* @return*/
public static String Dms2D(String jwd){if(StringUtil.isNotEmpty(jwd)&&(jwd.contains("°"))){//如果不為空并且存在度單位//計算前進行數據處理jwd = jwd.replace("E", "").replace("N", "").replace(":", "").replace(":", "");double d=0,m=0,s=0;d = Double.parseDouble(jwd.split("°")[0]);//不同單位的分,可擴展if(jwd.contains("′")){//正常的′m = Double.parseDouble(jwd.split("°")[1].split("′")[0]);}else if(jwd.contains("'")){//特殊的'm = Double.parseDouble(jwd.split("°")[1].split("'")[0]);}//不同單位的秒,可擴展if(jwd.contains("″")){//正常的″//有時候沒有分 如:112°10.25″s = jwd.contains("′")?Double.parseDouble(jwd.split("′")[1].split("″")[0]):Double.parseDouble(jwd.split("°")[1].split("″")[0]);}else if(jwd.contains("''")){//特殊的''//有時候沒有分 如:112°10.25''s = jwd.contains("'")?Double.parseDouble(jwd.split("'")[1].split("''")[0]):Double.parseDouble(jwd.split("°")[1].split("''")[0]);}jwd = String.valueOf(d+m/60+s/60/60);//計算并轉換為string//使用BigDecimal進行加減乘除/*BigDecimal bd = new BigDecimal("60");BigDecimal d = new BigDecimal(jwd.contains("°")?jwd.split("°")[0]:"0");BigDecimal m = new BigDecimal(jwd.contains("′")?jwd.split("°")[1].split("′")[0]:"0");BigDecimal s = new BigDecimal(jwd.contains("″")?jwd.split("′")[1].split("″")[0]:"0");//divide相除可能會報錯(無限循環小數),要設置保留小數點jwd = String.valueOf(d.add(m.divide(bd,6,BigDecimal.ROUND_HALF_UP).add(s.divide(bd.multiply(bd),6,BigDecimal.ROUND_HALF_UP))));*/}return jwd;
}
?
總結
以上是生活随笔為你收集整理的java度分秒转换度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: s5pv210——串口(UART)通信实
- 下一篇: java 数据网格,easyui数据网格