求助,f4计算float和double型数据精度问题。

2019-07-20 08:46发布

请问stm32在计算float型和double型数据时精度是怎样的?请帮忙分析下下面的程序。
if(Step_Length_Record < 1.0)
  {
   Step_Length_Record += Step_Length;
  }
  else
  {               
   MOVE1_flag = 1;
  } 
if( MOVE1_flag == 1)
{
   printf("步长记录%f ", Step_Length_Record);
}   
当把Step_Length_Record定义为float型时输出为1.020000,但是定义成double型输出为1.000000,不知道是
什么原因,请知道的兄弟帮忙回答下,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
满满VS犬夜叉
1楼-- · 2019-07-21 03:24
回复【6楼】exv:
---------------------------------
如果程序中出现这样的警告,该怎样处理呢?当然如果将float改为double型可以去掉警告,但是应该怎样合理定义变量的类型呢?求指教
..Devicedevice.c(296): warning:  #1035-D: single-precision operand implicitly converted to double-precision
满满VS犬夜叉
2楼-- · 2019-07-21 08:43
回复【8楼】ofourme:
---------------------------------
哦,对对!我之前还想到过强制类型转换,一直忘了试了,多谢提醒!
exv
3楼-- · 2019-07-21 13:15
 精彩回答 2  元偷偷看……
满满VS犬夜叉
4楼-- · 2019-07-21 15:06
回复【10楼】exv:
---------------------------------
好的!
阿法尔大胡子
5楼-- · 2019-07-21 19:44
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-21 22:28
 精彩回答 2  元偷偷看……

一周热门 更多>