参见英文答案 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 { ... }