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。
换句话说,我想将 rating
与 note
进行比较,但四舍五入到最接近的一半。
有没有办法在保持极其简单和有用的 NSPredicate 语法的同时实现这一点?
检查浮点值是否包含在相应的
区间:
[NSPredicate predicateWithFormat:@"note >= %f AND note < %f",
(double)rating - 0.5, (double)rating + 0.5]
我目前正在使用以下 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。
换句话说,我想将 rating
与 note
进行比较,但四舍五入到最接近的一半。
有没有办法在保持极其简单和有用的 NSPredicate 语法的同时实现这一点?
检查浮点值是否包含在相应的 区间:
[NSPredicate predicateWithFormat:@"note >= %f AND note < %f",
(double)rating - 0.5, (double)rating + 0.5]