Fork me on GitHub

一 前记

 

  最近涉及到把各种传感器的数据通过wifi和bt传输出去,这就涉及到了浮点传输的问题,为了方便传输,笔者的做法一般是把小数和整数部分分开,分别传输,这就比较简单明晰了。

 

二 方法论

   其实,把浮点拆解成两个部分,有好多方法的,这里我就把两三种常用的做一个总结,方便后续的朋友和自己来使用吧。

  A 减法:

#include <stdio.h>

int main()
{
    
    double test = -12.1234;

    int a_int = (int)test;

    int b_int = (test - a_int)*10000;

    printf("a_int:%d b_int:%d ",a_int,b_int);


    return 0;
}

   

B 函数法:

 

#include <stdio.h>
#include <math.h>
int main() {
    double x=3.1415, intpart;  //为变量赋初值
    double fractpart = modf(x, &intpart);  //求3.1415的小数部分
    printf("intpart: %lf\nfractpart: %lf\n", intpart, fractpart);
    return 0;
}

 

三 总结

   

这种实现方法还有很多,这里只列出最简单两种吧,笔者认为,大道至简,无论什么产品和解决方法,都是越简单越显示水平啊。最后送一句话:

普天之下莫非王土,率土之滨,莫非王臣。把属于自己位置的事情做好就行了。

 

posted on 2020-04-06 12:44  虚生  阅读(11349)  评论(0编辑  收藏  举报