1. ホーム
  2. objective-c

[解決済み] エラー: バイナリ式のオペランドが無効です ('float' と 'float')

2022-02-06 09:42:58

質問

除算残差の検証をしたいのですが、どうすればいいですか?以下は私のコードです。

NSUInteger myNumber = 2;
//  list is a NSArray

if ((arrayImg.count / ((float) imgPerPage)) % 1 >0)
{
 // do something
}

が、こんなエラーが出ます。

error: バイナリ式のオペランドが無効です ('float' と 'float')

とすると

float result = (arrayImg.count / ((float) imgPerPage));

は正常に動作しますが、%1 を使用するとエラーが発生するのはなぜでしょうか。

私のコードのどこがおかしいかわかる方いらっしゃいますか?

本当にありがとうございました。

どのように解決するのですか?

modulo 演算子 ( % そのため、浮動小数点数の式を整数に変換する必要があります。また、奇数か偶数かの判定をしようとしているようなので % 2 ではなく % 1 . だから変更。

if ((arrayImg.count / ((float) imgPerPage)) % 1 >0)

になります。

if (((int)(arrayImg.count / (float) imgPerPage)) % 2 > 0)