NSPredicate - 与四舍五入的整数进行比较

NSPredicate - compare with a rounded int

我目前正在使用以下 NSPredicate 对我拥有的数组进行排序:

        [filteredResults filterUsingPredicate:[NSPredicate predicateWithFormat:@"note.intValue >= %ld", rating]];

基本上,note 元素从 1 到 5,但它不是一个整数,它是一个浮点数,可以是 4.5、4.75 或 4.2。另一方面,rating 对象是一个整数:它可以是 1、2、3、4 或 5。我想要实现的是,如果 note 是 4.75,则应该保留它在排序中如果 rating 是 5。 换句话说,我想将 ratingnote 进行比较,但四舍五入到最接近的一半。

有没有办法在保持极其简单和有用的 NSPredicate 语法的同时实现这一点?

检查浮点值是否包含在相应的 区间:

[NSPredicate predicateWithFormat:@"note >= %f AND note < %f",
     (double)rating - 0.5, (double)rating + 0.5]