关于浮点数格式转换的问题 点击:918 | 回复:2



willson

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 7回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2006年5月03日
发表于:2006-04-27 20:20:00
楼主
   各位大虾,救命啊!
   我的目的是让用户输入一个浮点数,先将它保存在char数组中,输出到液晶屏上显示,然后可将char数组转换成浮点数或将浮点数转换成char数组,我用atof()和sprintf()函数,可不知为什么,在浮点数和字符数组中进行转换,就是没有小数部分,晕死了!
如下代码:
float p1;
char str[8]={'1','2','3','4','.','5','6','7'};
p1 = atof(str);
结果p1=0;将数组改成str[8]={'0','1','2','3','4','.','5','6'};
结果p1=1234;

或:
float p2=1234.567;
char str2[8]={0};
sprintf(str2,"%.3lf",p2);
结果p2=1234;

环境是uC/OS-II,ARM系统,不知是否还有更好的方法?等待大哥们的回信,不胜感激!



变频器

  • 精华:1帖
  • 求助:0帖
  • 帖子:14帖 | 147回
  • 年度积分:0
  • 历史总积分:296
  • 注册:2003年4月14日
发表于:2007-05-10 09:47:00
1楼
我是实在看不懂呀,我现在的问题是S7-300中如何把浮点数的值转换成整数?

重剑

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 62回
  • 年度积分:0
  • 历史总积分:111
  • 注册:2004年6月12日
发表于:2007-05-10 16:44:00
2楼
试一下:
     #include <stdlib.h>
     
     int main()
     { 
        float P1;
        char* str="1234.567";
        p1=atof(str);
        printf("%.3lf",str);
        return 0;
      }

热门招聘
相关主题

官方公众号

智造工程师