目标C:数字之间的比较问题

Zhe*_*hen 0 comparison objective-c nsnumber ios

我正在尝试实现下面的代码段.但是我无法得到预期的结果.例如,如果我的disanceFromLoc = 0.16,我的输出仍然是0.16 km.

我比较价值的方式有问题吗?object是'NSNumber'类(在核心数据中将其定义为double)

if ([object.distanceFromLoc doubleValue] < 0)
    {
        cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"Approx. Distance: %0.2f m", [object.distanceFromLoc doubleValue]*1000];
    }
    else 
    {
        cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"Approx. Distance: %0.2f km", [object.distanceFromLoc doubleValue]];
    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

真鹤

Tim*_*Tim 6

我相信你的意思是比较一个,而不是零.

就目前而言,你正在检查你distanceFromLoc是否是负面的,这可能(通常)在常规距离内不会发生.相反,你应该检查你是否接近1公里(即< 1),此时你可以乘以1000并转换为米.