当比较两个双精度值时,有没有一种本机的或更简单的方法来做加或减。现在我已经做了两次这样的比较,但我觉得应该有一种更干净的方法来做这件事。我们在我们的应用程序中做了很多这样的比较,所以我更喜欢使用最简单和最干净的函数。
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。
发布于 2017-10-26 00:46:00
检查x是否在y的2内
if abs(x - y) < 2 {
...
}我认为单独理解它已经足够简单了,但为了完整性:
x恰好等于y,则x - y为0。如果x比y小两个,那么x - y就是-2。如果大于2,则x - y为2。如果它介于两者之间,那么它就在中间的某个地方。因此,有趣的范围是(-2, 2);abs既给出了有趣的[0, 2)范围,又保证没有结果低于0;发布于 2017-10-26 00:27:31
您可以使用模式匹配:
if (y-2)...(y+2) ~= x {
// your code in case the value is within the range
}发布于 2017-10-26 00:15:40
根据您的使用情况,检查X是否在一组数字中可能会有所帮助。
https://stackoverflow.com/questions/46937260
复制相似问题