浮点型数据转字符型数组(可用于串口发送)

本文提供了一段将浮点型数据转换为字符型数组的代码,并结合解析,旨在帮助需要通过串口发送浮点数据的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码由院内大佬所写,本人加上解析给需要的小伙伴一点参考

 int i,j,k;
  long temp,tempoten;
  u8 intpart[20], dotpart[20];  

  if(data<0) 
{
    str[0]='-';
    data=-data;
}
  else str[0]='+';


  temp=(long)data;//长整型
  i=0;
  tempoten=temp/10;
  while(tempoten!=0)//有十位
  {
    intpart[i]=temp-10*tempoten+48; //intpart【0】为个位数
    temp=tempoten;//十位十位地降
    tempoten=temp/10;//如果他有百位或及其以上的数
    i++;
  }
  intpart[i]=temp+48;//最高位


  data=data-(long)data;//得到小数部分
  for(j=0;j<12;j++)
  {
    dotpart[j]=(int)(data*10)+48;//从第一位小数开始放入数组
    data=data*10.0;//形成个位
    data=data-(long)data;//减去个位
  }


  for(k=1;k<=i+1;k++) 
        str[k]=intpart[i+1-k];//整型部分 i为整型最高位 str[0]为符号
  str[i+1+1]='.';
  for(k=i+3;k<i+j+3;k++) //小数部分 j为小数最低位
        str[k]=dotpart[k-i-3];//由dotpart[0]开始
  str[i+j+3]=0x0D;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值