打印
[技术讨论]

求数组转浮点数(float)的方法

[复制链接]
501|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pjzmj2012|  楼主 | 2020-4-9 20:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pjzmj2012 于 2020-4-9 20:33 编辑

求数组转浮点数(float)的方法。
如 有数组buff[]={3,0,1,7,'.',0,4,3,4,9,5,'N',1,2,0,0,6,'.'7,9,0,5,4,6,'E'}
转换为float temp1=3017.043495
temp2=12006.790546
那位大侠知道啊,在线等
或者有数组直接转经纬度的 时分秒也行。

使用特权

评论回复

相关帖子

沙发
gxs64| | 2020-4-9 20:49 | 只看该作者
3*1000+0*100+1*10+7*1

使用特权

评论回复
评论
pjzmj2012 2020-4-9 20:55 回复TA
谢谢 
gxs64 2020-4-9 20:53 回复TA
@pjzmj2012 :除 
pjzmj2012 2020-4-9 20:50 回复TA
小数点部分咋办呢 
板凳
1137475550| | 2020-4-9 21:41 | 只看该作者
sscanf 他不香吗

使用特权

评论回复
地板
joyme| | 2020-4-10 10:21 | 只看该作者
这段代码可以帮你完成一个浮点数的转换,完整的可以自己根据buff里的数据形式修改
bool  isMulti = true;
float  fTmpRes = 0;
float  fDivVal = 1;
short bIndex = 0;
while((buff[bIndex] >= '0' && buff[bIndex] <= '9' ) || (buff[bIndex] == '.'))
{
      if(buff[bIndex] == '.')
      {
           isMulti = false;
                   bIndex++;
          }
          else
          {
                        if(isMulti)
                        {
                                fTmpRes *= 10;
                                fTmpRes += buff[bIndex++];
                        }
                        else
                        {
                                fDivVal /= 10;
                                fTmpRes += (fDivVal * buff[bIndex++]);
                        }
          }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

131

帖子

1

粉丝