0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分享在arduino 单片机中浮点数转换位数不够,精度丢失的解决办法

李智勇06 来源:李智勇06 作者:李智勇06 2024-08-27 14:34 次阅读

String NEMA2WGS84(String ddmmStr) { //保留7位,由于单片机限制,必须放大到整数处理,否则小数点后面位数只有2位,不能直接用字符串转双精度函数

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

int dot = ddmmStr.length() - ind1 - 1; //找到原来小数点位置,转换10的幂次方

ddmmStr.replace(".", ""); //转换到整数

String dd = ddmmStr.substring(0, ind1 - 2); //取出度整数部分

String mm = ddmmStr.substring(ind1 - 2, ddmmStr.length()); //分

int degrees = dd.toInt();

double minutes = mm.toDouble() / (60); //转换到分钟

double dotl = 1 / powl(10, dot); //缩小位数

double res = (double)degrees + minutes * dotl; //把整数在转换回小数

// Serial.println(res, 7);

return String(res, 7);

}

以上是我经过实际测试通过对,如果直接转换只有两位小数,现在已经可以到7位精度。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6023

    文章

    44388

    浏览量

    628913
  • 浮点数
    +关注

    关注

    0

    文章

    59

    浏览量

    15839
  • Arduino
    +关注

    关注

    187

    文章

    6454

    浏览量

    186003
收藏 人收藏

    评论

    相关推荐

    labview和单片机通讯浮点数如何处理?

    通过labview和下位单片机通过串口通讯,对于浮点数,如果上位机要把浮点数传给下位 或者下位
    发表于 06-06 21:05

    单片机读取浮点数

    单片机,把某个浮点数保存在指定的四个单元后,怎么读取出来呢?比如,把浮点数float a=233.45按字节保存在0x0400,0x0401,0x0402,0x0403后,怎么把它读
    发表于 01-11 09:20

    单片机浮点数转十六进制,串口接收浮点数处理

    num.f=6.0时,另一个成员变量也改变num.m=40C00000因为,单片机的十进制和十六进制都可以进行直接计算,所以用以上办法就可以实现浮点数转十六进制.通俗的讲:共用体就像一个容器,成员变量就是
    发表于 07-18 14:57

    单片机显示浮点数的相关资料下载

    使用单片机显示浮点型数据时,因为要显示小数点,有时还要显示负号,而且整数部分位数还经常是不确定的。这时我们就需要一种有效快捷的显示方法。如下:#include "
    发表于 11-22 08:23

    浮点数单片机数据采集监控系统的应用

    单片机能够直接处理的数是定点数,然而实际上需要输入、处理和显示的数据却是浮点数,本文详细介绍了浮点数
    发表于 08-13 15:38 44次下载

    PIC单片机浮点数格式及其与十进制数之间的转换和程序设计步骤

    我们设计的仪表采用PIC系列单片机,碰到了浮点数的运算问题,查阅其有关资料发现,其浮点数的格式及其与十进制数之间的
    发表于 08-05 17:39 1883次阅读
    PIC<b class='flag-5'>单片机</b><b class='flag-5'>浮点数</b>格式及其与十进制数之间的<b class='flag-5'>转换</b>和程序设计步骤

    单片机浮点数的快速除法

    介绍一种 8096 /96 系列单片机上实现的单精度 浮点数 快速除法。该算法采用了预估一修正的数值计算方法,并充分利用了16 位CPU
    发表于 06-03 16:47 93次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>浮点数</b>的快速除法

    单片机浮点数运算的源码设计

    单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。本文详细介绍了浮点数单片机的表示方式和汇编子程序,
    的头像 发表于 03-07 15:19 9969次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>浮点数</b>运算的源码设计

    单片机的16进制如何与浮点数进行互换

    本文档的主要内容详细介绍的是单片机的16进制如何与浮点数进行互换
    发表于 08-06 17:34 7次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>中</b>的16进制如何与<b class='flag-5'>浮点数</b>进行互换

    单片机浮点数转换成串口可打印格式的程序免费下载

    本文档的主要内容详细介绍的是单片机浮点数转换成串口可打印格式的程序免费下载。
    发表于 07-16 17:39 3次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>中</b>的<b class='flag-5'>浮点数</b><b class='flag-5'>转换</b>成串口可打印格式的程序免费下载

    单片机显示浮点数

    使用单片机显示浮点型数据时,因为要显示小数点,有时还要显示负号,而且整数部分位数还经常是不确定的。这时我们就需要一种有效快捷的显示方法。如下:#include "
    发表于 11-13 14:06 24次下载
    <b class='flag-5'>单片机</b>显示<b class='flag-5'>浮点数</b>

    FLASH存储浮点数据的解决办法

    需求: 参数的数据类型为浮点数据,需要存储至FLASH解决办法:采用联合体联合体特性:联合体内的参数,共用一块内存。案例://构建联合体数据结构typedef union{ float
    发表于 12-02 12:21 6次下载
    FLASH存储<b class='flag-5'>浮点数</b>据的<b class='flag-5'>解决办法</b>

    点数浮点数STM32单片机中使用傅里叶(FFT)变换的理解

    点数浮点数的区别目的:理解定点数浮点数傅里叶变换(FFT)的实际应用的选择
    发表于 12-24 19:22 16次下载
    定<b class='flag-5'>点数</b>和<b class='flag-5'>浮点数</b><b class='flag-5'>在</b>STM32<b class='flag-5'>单片机</b>中使用傅里叶(FFT)变换的理解

    精度和双精度浮点数的区别

    计算机科学和数值计算浮点数是一种用于表示实数的数据类型。浮点数有两种精度级别:单精度和双
    的头像 发表于 12-13 10:55 6049次阅读

    精度和双精度浮点数的区别

    精度和双精度是计算机中表示浮点数的两种不同的精度计算机
    的头像 发表于 12-15 10:25 4308次阅读