【问题标题】:What is the convenience method to compare two NSNumbers with float values using limited precision?使用有限精度将两个 NSNumber 与浮点值进行比较的便捷方法是什么?
【发布时间】:2013-09-30 02:00:56
【问题描述】:

什么是 Objective-C 方便的方法来比较几个 NSNumbers 和浮点值,看看它们是否大致相等(两位小数就可以了)?

如果有一个选项不会随机更改数字,我会使用浮点数以外的东西。但无论如何我已经在使用花车了...... .

我想一定是这样的:

[myNumber isEqualTo:myOtherNumber withPrecision:2];

但实际上,令人惊讶的是我找不到这样一种方便的方法。我在这里想念什么?

将这两个数字转换为 NSDecimal 或其他内容有帮助吗?

【问题讨论】:

  • 伪代码版本如下所示:( abs(num1 - num2) < 0.01 )。如果它们之间的差异小于百分之一(精度为 2 个小数点),则计算结果为 true,否则为 false。
  • 没有方便的方法,因为没有将浮点数与容差进行比较的一般规则。正确的比较取决于应用程序。

标签: objective-c floating-point comparison precision convenience-methods


【解决方案1】:
return (fabs([myNumber doubleValue] - [myOtherNumber doubleValue]) < 0.01);

我的 Objective-c 有点生疏了,但是把它放在一个接受 NSNumbers 并返回 bool 的方法中应该可以工作。

【讨论】:

  • 我知道这种方法,但我正在寻找一种合适的方便方法。我猜一个不存在。
  • 好吧,我想我必须忍受这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
相关资源
最近更新 更多