我在C代码中比较两个变量时遇到了一个奇怪而出乎意料的问题。该代码是使用面向STM32F407微控制器的keil编写的。请考虑以下问题:
if ( f1 > u1 ) { // do some ... }
f1是浮点变量,而u1是无符号整数。在调试模式下,f1 = 0.1和u1 = 1600,但是if条件结果为true。
任何人都可以解决问题吗?
谢谢。此致Ras
我不确定,但是您可以将unsigned int强制转换为float,看看问题是否已解决。
f1 > (float)u1