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)注
6043文章
44622瀏覽量
638535 -
浮點(diǎn)數(shù)
+關(guān)注
關(guān)注
0文章
61瀏覽量
15909 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187818
發(fā)布評論請先 登錄
相關(guān)推薦
labview和單片機(jī)通訊浮點(diǎn)數(shù)如何處理?
單片機(jī)讀取浮點(diǎn)數(shù)
單片機(jī)浮點(diǎn)數(shù)轉(zhuǎn)十六進(jìn)制,串口接收浮點(diǎn)數(shù)處理
單片機(jī)顯示浮點(diǎn)數(shù)的相關(guān)資料下載
浮點(diǎn)數(shù)在單片機(jī)數(shù)據(jù)采集監(jiān)控系統(tǒng)中的應(yīng)用
PIC單片機(jī)浮點(diǎn)數(shù)格式及其與十進(jìn)制數(shù)之間的轉(zhuǎn)換和程序設(shè)計(jì)步驟

單片機(jī)浮點(diǎn)數(shù)的快速除法

單片機(jī)浮點(diǎn)數(shù)運(yùn)算的源碼設(shè)計(jì)

單片機(jī)中的16進(jìn)制如何與浮點(diǎn)數(shù)進(jìn)行互換

單片機(jī)中的浮點(diǎn)數(shù)轉(zhuǎn)換成串口可打印格式的程序免費(fèi)下載

單片機(jī)顯示浮點(diǎn)數(shù)

FLASH存儲(chǔ)浮點(diǎn)數(shù)據(jù)的解決辦法

定點(diǎn)數(shù)和浮點(diǎn)數(shù)在STM32單片機(jī)中使用傅里葉(FFT)變換的理解

評論