比较浮点变量和非正整数时的意外结果

问题描述 投票:0回答:1

我在C代码中比较两个变量时遇到了一个奇怪而出乎意料的问题。该代码是使用面向STM32F407微控制器的keil编写的。请考虑以下问题:

if ( f1 > u1 )
 {
  // do some ...
 }

f1是浮点变量,而u1是无符号整数。在调试模式下,f1 = 0.1和u1 = 1600,但是if条件结果为true。

任何人都可以解决问题吗?

谢谢。此致Ras

c keil stm32f4
1个回答
0
投票

我不确定,但是您可以将unsigned int强制转换为float,看看问题是否已解决。

f1 > (float)u1
© www.soinside.com 2019 - 2024. All rights reserved.