String NEMA2WGS84(String ddmmStr) { //保留7位,由于單片機(jī)限制,必須放大到整數(shù)處理,否則小數(shù)點(diǎn)后面位數(shù)只有2位,不能直接用字符串轉(zhuǎn)雙精度函數(shù)
int ind1 = ddmmStr.indexOf(".");
int dot = ddmmStr.length() - ind1 - 1; //找到原來小數(shù)點(diǎn)位置,轉(zhuǎn)換10的冪次方
ddmmStr.replace(".", ""); //轉(zhuǎn)換到整數(shù)
String dd = ddmmStr.substring(0, ind1 - 2); //取出度整數(shù)部分
String mm = ddmmStr.substring(ind1 - 2, ddmmStr.length()); //分
int degrees = dd.toInt();
double minutes = mm.toDouble() / (60); //轉(zhuǎn)換到分鐘
double dotl = 1 / powl(10, dot); //縮小位數(shù)
double res = (double)degrees + minutes * dotl; //把整數(shù)在轉(zhuǎn)換回小數(shù)
// Serial.println(res, 7);
return String(res, 7);
}
以上是我經(jīng)過實(shí)際測試通過對,如果直接轉(zhuǎn)換只有兩位小數(shù),現(xiàn)在已經(jīng)可以到7位精度。
審核編輯 黃宇
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635212 -
浮點(diǎn)數(shù)
+關(guān)注
關(guān)注
0文章
60瀏覽量
15869 -
Arduino
+關(guān)注
關(guān)注
188文章
6469瀏覽量
187053
發(fā)布評論請先 登錄
相關(guān)推薦
評論