我正在尝试实现下面的代码段。但是我无法得到预期的结果。例如,如果我的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]];
}
谢谢!
Zhen Hoe
答案 0 :(得分:6)
我相信你的意思是比较一个,而不是零。
目前,你正在检查你的distanceFromLoc
是否为负数,这可能(通常)在常规距离内不会发生。相反,你应该检查你是否接近1公里(即< 1
),此时你可以乘以1000并转换为米。