首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最接近0的返回值,包括负数

最接近0的返回值,包括负数
EN

Stack Overflow用户
提问于 2015-09-21 03:43:11
回答 2查看 190关注 0票数 1

我有一个NSDictionary,我想返回最接近零的对应键(包括负数的键):

代码语言:javascript
复制
NSDictionary *dict = @{
                       @"David" : @-89,
                       @"Bobby" : @61,
                       @"Nancy" : @-8,
                       @"Sarah" : @360,
                       @"Steve" : @203
                      };

所以在这种情况下Nancy最接近..。我怎么能这么做?我搜了一遍,却空了出来。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-21 04:07:25

只需迭代这些值,并跟踪哪个值最接近于零。使用abs处理绝对值。

免责声明--下面的代码没有测试--可能是打字。它也假定整数。根据需要调整以支持浮点值。

代码语言:javascript
复制
NSDictionary *dict = ... // your dictionary
NSInteger closestValue = NSIntegerMax;
NSString *closestKey = nil;
for (NSString *key in [dict allKeys]) {
    NSNumber *value = dict[key];
    NSInteger number = (NSInteger)labs((long)[value integerValue]);
    if (number < closestValue) {
        closestValue = number;
        closestKey = key;
    }
}

NSLog(@"Closest key = %@", closestKey);
票数 1
EN

Stack Overflow用户

发布于 2015-09-21 04:12:41

这是一个简单的最大最小问题,

代码语言:javascript
复制
NSString *curMinKey = [dict.allKeys firstObject];
NSInteger curMinVal = ABS([[dict objectForKey:curMinKey] integerValue]);
for(id key in dict) {
    if(curMinVal > ABS([[dict objectForKey:key] integerValue])) {
        curMinKey = key;
        curMinVal = ABS([[dict objectForKey:key] integerValue]);
    }
}
/// curMinKey is what you are looking for
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32687024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档