我目前正在使用以下NSPredicate对我拥有的数组进行排序:
[filteredResults filterUsingPredicate:[NSPredicate predicateWithFormat:@"note.intValue >= %ld", rating]];
基本上,note
元素从1到5,但它不是int,它是一个可以是4.5,或4.75或4.2的浮点数。另一方面,rating
对象是一个int:它是1,2,3,4或5.我想要实现的是,如果note
是4.75,如果rating
为5,则应将其保留在排序中。
换句话说,我想将rating
与note
进行比较,但舍入到最接近的一半。
有没有办法在保持非常简单和有用的NSPredicate语法的同时实现这一目标?
答案 0 :(得分:1)
检查相应的浮点值是否包含 间隔:
[NSPredicate predicateWithFormat:@"note >= %f AND note < %f",
(double)rating - 0.5, (double)rating + 0.5]