比较两个double值时,是否有原生或更简单的方法来做加号或减号。现在我做了两次这样的比较,但我觉得应该有一个更清洁的方法来做到这一点。我们在应用程序中进行了大量的这些比较,因此我更倾向于使用最简单,最干净的功能。
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。
答案 0 :(得分:3)
检查x
是否在2
的{{1}}范围内:
y
我认为这很容易单独理解,但为了完整起见:
if abs(x - y) < 2 {
...
}
完全等于x
,则y
为x - y
。如果0
比x
少两个,则y
为x - y
。如果它大于-2
是x - y
。如果它介于两者之间,那么它就在中间的某个地方。所以有趣的范围是2
; (-2, 2)
两者都会提供有趣的abs
范围,并保证[0, 2)
以下没有结果; 答案 1 :(得分:1)
您可以使用模式匹配:
if (y-2)...(y+2) ~= x {
// your code in case the value is within the range
}
答案 2 :(得分:0)
根据您的使用情况,检查X是否在一组数字中可能会有所帮助。