目标 C:数字之间的比较问题
我正在尝试实现下面的代码片段。但是我无法得到我预期的结果。例如,如果我的 disanceFromLoc = 0.16,我的输出仍然为 0.16 公里。
我比较价值的方式有问题吗?对象属于“NSNumber”类(在核心数据中将其定义为双精度)
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]];
}
谢谢!
振和
I am trying to implement the code snippet below. However I am unable to get my expected results. For example if my disanceFromLoc = 0.16, I am still getting my output as 0.16 km.
Is there something wrong with the way I am comparing the value? object is of 'NSNumber' class (defined it as double in core data)
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]];
}
Thanks!
Zhen Hoe
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信你的意思是与一比较,而不是与零比较。
就目前情况而言,您正在检查您的
distanceFromLoc
是否为负数,这(大概)在常规距离中永远不会发生。相反,您应该检查距离是否小于 1 公里(即<1
),此时您可以乘以 1000 并转换为米。I believe you mean to compare to one, not zero.
As it stands, you're checking if your
distanceFromLoc
is negative, which (presumably) never happens with a regular distance. Instead, you should be checking if you're closer than 1km (i.e.< 1
), at which point you can multiply by 1000 and convert to meters.