好大的一个问题。

2019-08-14 00:44发布

进行判断时候,为什么这两个数据不一样,明明是一样的数据,只不过一个用test1表示,之间在watch1窗口进行观察,他们的数据就不一样。
两个数据类型都是float类型,都是全局变量extern float XX;
请问哪里出错了,在后边程序判断的时候一直进入循环。
test1=(mycolor.cal_redfactor-mycolor_init.cal_redfactor);
QQ截图20170917164602.jpg
QQ截图20170917164637.jpg


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
FantaSy_
1楼-- · 2019-08-14 00:51
是不是逻辑处理有问题啊???
jinx
2楼-- · 2019-08-14 04:34
FantaSy_ 发表于 2017-9-17 17:29
是不是逻辑处理有问题啊???

应该没有问题的吧,我的主要问题是
test1=(mycolor.cal_redfactor-mycolor_init.cal_redfactor);
在watch窗口中进行观察,test1的值应该和(mycolor.cal_redfactor-mycolor_init.cal_redfactor)是一样的,但是实际上两者并没有相同。
这样才导致一直进入循环。
jiutianshenjian
3楼-- · 2019-08-14 09:06
 精彩回答 2  元偷偷看……
jiutianshenjian
4楼-- · 2019-08-14 11:31
如果你定义了float的a和b。
执行
a = 0.0259;
b = a;

a、b不是一个数的话,可能b的内存一部分被别的地方越界抢占了。例如数组越界之类,b前面定义的那个看看有没有问题。

方便的话上传,让其他人看看是不是一样现象。
周亚龙
5楼-- · 2019-08-14 17:13
是不是函数运行了两边结果出问题了。应该是逻辑的问题,你仔细查查
17602515236
6楼-- · 2019-08-14 17:56
float类型是不精确的,你可以试试5楼的方法

一周热门 更多>