0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享在arduino 單片機中浮點數(shù)轉(zhuǎn)換位數(shù)不夠,精度丟失的解決辦法

李智勇06 ? 來源:李智勇06 ? 作者:李智勇06 ? 2024-08-27 14:34 ? 次閱讀

String NEMA2WGS84(String ddmmStr) { //保留7位,由于單片機限制,必須放大到整數(shù)處理,否則小數(shù)點后面位數(shù)只有2位,不能直接用字符串轉(zhuǎn)雙精度函數(shù)

int ind1 = ddmmStr.indexOf(".");

int dot = ddmmStr.length() - ind1 - 1; //找到原來小數(shù)點位置,轉(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)過實際測試通過對,如果直接轉(zhuǎn)換只有兩位小數(shù),現(xiàn)在已經(jīng)可以到7位精度。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6026

    文章

    44451

    瀏覽量

    630782
  • 浮點數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    15845
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6455

    瀏覽量

    186345
收藏 人收藏

    評論

    相關(guān)推薦

    labview和單片機通訊浮點數(shù)如何處理?

    通過labview和下位單片機通過串口通訊,對于浮點數(shù),如果上位機要把浮點數(shù)傳給下位 或者下位
    發(fā)表于 06-06 21:05

    單片機讀取浮點數(shù)

    單片機,把某個浮點數(shù)保存在指定的四個單元后,怎么讀取出來呢?比如,把浮點數(shù)float a=233.45按字節(jié)保存在0x0400,0x0401,0x0402,0x0403后,怎么把它讀
    發(fā)表于 01-11 09:20

    單片機浮點數(shù)轉(zhuǎn)十六進制,串口接收浮點數(shù)處理

    num.f=6.0時,另一個成員變量也改變num.m=40C00000因為,單片機的十進制和十六進制都可以進行直接計算,所以用以上辦法就可以實現(xiàn)浮點數(shù)轉(zhuǎn)十六進制.通俗的講:共用體就像一個容器,成員變量就是
    發(fā)表于 07-18 14:57

    單片機顯示浮點數(shù)的相關(guān)資料下載

    ?使用單片機顯示浮點型數(shù)據(jù)時,因為要顯示小數(shù)點,有時還要顯示負號,而且整數(shù)部分位數(shù)還經(jīng)常是不確定的。這時我們就需要一種有效快捷的顯示方法。如下:#include "
    發(fā)表于 11-22 08:23

    浮點數(shù)單片機數(shù)據(jù)采集監(jiān)控系統(tǒng)的應(yīng)用

    單片機能夠直接處理的數(shù)是定點數(shù),然而實際上需要輸入、處理和顯示的數(shù)據(jù)卻是浮點數(shù),本文詳細介紹了浮點數(shù)
    發(fā)表于 08-13 15:38 ?44次下載

    PIC單片機浮點數(shù)格式及其與十進制數(shù)之間的轉(zhuǎn)換和程序設(shè)計步驟

    我們設(shè)計的儀表采用PIC系列單片機,碰到了浮點數(shù)的運算問題,查閱其有關(guān)資料發(fā)現(xiàn),其浮點數(shù)的格式及其與十進制數(shù)之間的
    發(fā)表于 08-05 17:39 ?1924次閱讀
    PIC<b class='flag-5'>單片機</b><b class='flag-5'>浮點數(shù)</b>格式及其與十進制數(shù)之間的<b class='flag-5'>轉(zhuǎn)換</b>和程序設(shè)計步驟

    單片機浮點數(shù)的快速除法

    介紹一種 8096 /96 系列單片機上實現(xiàn)的單精度 浮點數(shù) 快速除法。該算法采用了預(yù)估一修正的數(shù)值計算方法,并充分利用了16 位CPU
    發(fā)表于 06-03 16:47 ?93次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>浮點數(shù)</b>的快速除法

    單片機浮點數(shù)運算的源碼設(shè)計

    單片機執(zhí)行程序的過程,實際上就是執(zhí)行我們所編制程序的過程。即逐條指令的過程。本文詳細介紹了浮點數(shù)單片機的表示方式和匯編子程序,
    的頭像 發(fā)表于 03-07 15:19 ?1w次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>浮點數(shù)</b>運算的源碼設(shè)計

    單片機的16進制如何與浮點數(shù)進行互換

    本文檔的主要內(nèi)容詳細介紹的是單片機的16進制如何與浮點數(shù)進行互換
    發(fā)表于 08-06 17:34 ?7次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>中</b>的16進制如何與<b class='flag-5'>浮點數(shù)</b>進行互換

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

    本文檔的主要內(nèi)容詳細介紹的是單片機浮點數(shù)轉(zhuǎn)換成串口可打印格式的程序免費下載。
    發(fā)表于 07-16 17:39 ?3次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>中</b>的<b class='flag-5'>浮點數(shù)</b><b class='flag-5'>轉(zhuǎn)換</b>成串口可打印格式的程序免費下載

    單片機顯示浮點數(shù)

    ? 使用單片機顯示浮點型數(shù)據(jù)時,因為要顯示小數(shù)點,有時還要顯示負號,而且整數(shù)部分位數(shù)還經(jīng)常是不確定的。這時我們就需要一種有效快捷的顯示方法。如下:#include "
    發(fā)表于 11-13 14:06 ?24次下載
    <b class='flag-5'>單片機</b>顯示<b class='flag-5'>浮點數(shù)</b>

    FLASH存儲浮點數(shù)據(jù)的解決辦法

    需求: 參數(shù)的數(shù)據(jù)類型為浮點數(shù)據(jù),需要存儲至FLASH解決辦法:采用聯(lián)合體聯(lián)合體特性:聯(lián)合體內(nèi)的參數(shù),共用一塊內(nèi)存。案例://構(gòu)建聯(lián)合體數(shù)據(jù)結(jié)構(gòu)typedef union{ float
    發(fā)表于 12-02 12:21 ?6次下載
    FLASH存儲<b class='flag-5'>浮點數(shù)</b>據(jù)的<b class='flag-5'>解決辦法</b>

    點數(shù)浮點數(shù)STM32單片機中使用傅里葉(FFT)變換的理解

    點數(shù)浮點數(shù)的區(qū)別目的:理解定點數(shù)浮點數(shù)傅里葉變換(FFT)的實際應(yīng)用的選擇
    發(fā)表于 12-24 19:22 ?16次下載
    定<b class='flag-5'>點數(shù)</b>和<b class='flag-5'>浮點數(shù)</b><b class='flag-5'>在</b>STM32<b class='flag-5'>單片機</b>中使用傅里葉(FFT)變換的理解

    精度和雙精度浮點數(shù)的區(qū)別

    計算機科學(xué)和數(shù)值計算,浮點數(shù)是一種用于表示實數(shù)的數(shù)據(jù)類型。浮點數(shù)有兩種精度級別:單精度和雙
    的頭像 發(fā)表于 12-13 10:55 ?8122次閱讀

    精度和雙精度浮點數(shù)的區(qū)別

    精度和雙精度是計算機中表示浮點數(shù)的兩種不同的精度。計算機,
    的頭像 發(fā)表于 12-15 10:25 ?4800次閱讀