C 比较浮点变量和无符号整数时出现意外结果

C 比较浮点变量和无符号整数时出现意外结果,c,keil,stm32f4,C,Keil,Stm32f4,我在比较C代码中的两个变量时遇到了一个奇怪且意想不到的问题。该代码是使用Keil for STM32F407微控制器编写的。 请考虑以下事项: if ( f1 > u1 ) { // do some ... } f1是浮点变量,u1是无符号整数。 在调试模式下,f1=0.1,u1=1600,但if条件结果为真 有人能解决这个问题吗?可能重复的u1应该隐式提升为float。在正常情况下,条件应评估为假。这里少了一些东西。请创建。如果条件未导致true,则该。你有什么遗漏给我们看的吗

我在比较C代码中的两个变量时遇到了一个奇怪且意想不到的问题。该代码是使用Keil for STM32F407微控制器编写的。 请考虑以下事项:

if ( f1 > u1 )
 {
  // do some ...
 }
f1是浮点变量,u1是无符号整数。 在调试模式下,f1=0.1,u1=1600,但if条件结果为真


有人能解决这个问题吗?

可能重复的
u1
应该隐式提升为
float
。在正常情况下,条件应评估为假。这里少了一些东西。请创建。如果条件未导致true,则该
。你有什么遗漏给我们看的吗?请发布一个独立的、可编译的、可验证的样本。@gst,该样本不重复。假设采用典型的IEEE 754实现,精度问题不是出现问题的原因。