我想在PIC单片机得到保留两位小数的浮点数,下面这样不行?怎么样得到?【恢复】

2020-02-10 08:46发布

float ADToPressure(unsigned int AD)

{

   float pressure=0;

   unsigned int tmp=0;

   

   pressure= (((5*(float)AD)/1023-0.88)*1.2)/3.52;  //压力量程4mA~20mA对应0~1.2MPa   

   tmp= (unsigned int)((pressure+0.005)*100);  //扩大100倍,保留两位小数

   pressure=(float)tmp/100;



   return pressure;



}



上面这个方法在avr单片机里面可以得到干净的小数点后2位有小数字的浮点数,可是在pic单片机得不到,观察后面总是不干净,例如1.20得到的像是1.20001221这样的,怎么得到干净的2位有效浮点数?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
Cliff
1楼-- · 2020-02-10 09:48
0.1(10) 转换成二进制小数是什么? 

这个问题在学进制转换的时候,应该是必定提到的。

楼主要注意打好基础啊!
soulmate
2楼-- · 2020-02-10 15:35
(float) 120/100 得不到1.2吗?   1.200001221?
Cliff
3楼-- · 2020-02-10 19:33
如果你把我给你的题目做一遍,相信问题就会迎刃而解了

不要拘泥于AVR和PIC,这只是表面现象
soulmate
4楼-- · 2020-02-10 20:06
pic里面 

 (原文件名:b.JPG) 
soulmate
5楼-- · 2020-02-10 20:14
 精彩回答 2  元偷偷看……
soulmate
6楼-- · 2020-02-10 21:10
可是我在avr单片机里面调试 (float)120/100 得到了1.2点击此处下载 ourdev_576403.rar(文件大小:6K) (原文件名:test.rar)

一周热门 更多>