有关STM32浮点数运算的问题

2019-08-12 18:02发布

我在keil C编写这样的测试程序
float a;
u8 b;
a=10.08;
b=(int)a;
a=a-b;

理论上a=0.08,在调试中变量查看为0,我把这个a值扩大100倍,用开发板液晶显示出来为7。
为什么调试中变量查看不了小数点后的数?
还有,为什么液晶显示出7来,我怀疑a=a-b,浮点减整形后的值不对。网上查了查,ARM不支持浮点数运算

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
sixear
1楼-- · 2019-08-12 21:44
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-08-12 22:48
回复【楼主位】anstxfw:
---------------------------------
经过我的仿真,当执行过a=a-b;这一句后,a的值变为0.07999992.
就是由于这个原因导致显示为7吧。
anstxfw
3楼-- · 2019-08-13 01:11
谢谢原子,那我还敢让这芯片做浮点数运算嘛!我的项目需要精确到小数点后4位呢~
randy1986
4楼-- · 2019-08-13 03:21
回复【4楼】anstxfw:
---------------------------------
别害怕!你只要精度取小数点后5位计算就可以。
comprends
5楼-- · 2019-08-13 06:11
anstxfw 发表于 2011-10-19 09:10
谢谢原子,那我还敢让这芯片做浮点数运算嘛!我的项目需要精确到小数点后4位呢~

挖坟挖到了。。我也遇到这个问题了,就是这个原因。。最后怎么解决的
LTY
6楼-- · 2019-08-13 11:19
 精彩回答 2  元偷偷看……

一周热门 更多>