swift - 加减法的最佳方法

标签 swift

在比较两个 double 值时,是否有一种 native 或更简单的方法来进行加减运算。现在我已经做了两次这样的比较,但我觉得应该有一种更简洁的方法来做到这一点。我们在我们的应用程序中做了很多这样的比较,所以我更愿意为此使用最简单和最干净的功能。

let y: Double = 5 // main value
let x: Double = 6 // value that we are comparing y to
if x > y + 2 || x > y - 2 {
    //Do something
}

我主要是想检查 x(在本例中为 6)是否在 3 (5-2) 和 7 (5+2) 之间。如果它在两个值之间,我想做一些事情,如果不是,我想做其他事情。

如果可能的话,我想通过使用 2 的值来实现,而不是显式地写出 3 和 7。

最佳答案

检查 x 是否在 y2 范围内:

if abs(x - y) < 2 {
    ...
}

我觉得单看还是很简单的,但是为了完整起见:

  • 这会将测试移动到 0 附近。如果 x 正好等于 y 那么 x - y0。如果 xy 小 2,则 x - y-2。如果它比 x - y 大两倍,则为 2。如果它介于两者之间,那么它就在中间的某个地方。所以有趣的范围是 (-2, 2);
  • 应用 abs 既给出了有趣的 [0, 2) 范围,又保证没有结果低于 0
  • 因此,仅与范围的上限进行比较就足够了。

关于swift - 加减法的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46937260/

相关文章:

swift - 在线应用程序中重复使用 View Controller ,并且仍然有后退按钮

swift - 导航到其他页面后,如何在 SwiftUI 中恢复已发布的计时器?

ios - 如何使用 Swift 保存从 tableView 上的文本字段收到的用户答案

ios - SpriteKit 和 SwiftUI 动画(内存泄漏 - NSXPCConnection?)

ios - Pod Repo Remove Master 有什么作用?

Swift:NSStackView,错误只添加了一个 subview

ios - 如何使用选项卡和导航 Controller 实例化 View Controller 以进行深度链接?

ios - 在 3D 旋转中转换加速度计

python - 如何在我的 Swift 软件应用程序中为我的函数计算运行 Python 代码?

ios - 在 Swift 中使用选择器的正确方法