NSPredicate - 与舍入的int进行比较

时间:2017-02-06 20:28:04

标签: sorting nsarray nspredicate

我目前正在使用以下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,则应将其保留在排序中。 换句话说,我想将ratingnote进行比较,但舍入到最接近的一半。

有没有办法在保持非常简单和有用的NSPredicate语法的同时实现这一目标?

1 个答案:

答案 0 :(得分:1)

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

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