参见英文答案 Why does modulus division (%) only work with integers?9个 这是一个相当长的一周,所以如果我很厚,请原谅我. 我有一些代码: float someFloat = 0;//....do some stuff to someFloat//....if( someFloat %
          这是一个相当长的一周,所以如果我很厚,请原谅我.
我有一些代码:
float someFloat = 0;
//....do some stuff to someFloat
//....
if( someFloat % 1)
{
   //take some action
} 
 我收到编译器错误:错误:无效的操作数到二进制%
假设编译器不是药物,这有什么不对吗?
编辑:顺便说一句,我实际想要做的是检测非整数值并向上舍入.
我应该做的是调用roundf(我想检查返回是否小于操作数,然后再增加,如果是这样,请注意我们已经四舍五入)
或者,如果您希望浮点数表示整数值,则首先将其转换为int,例如:
if ((int)someFloat % 2 == 1) // if f is an odd integer value
{
    ...
}
        
             