首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >做正负运算的最好方法

做正负运算的最好方法
EN

Stack Overflow用户
提问于 2017-10-26 00:09:56
回答 3查看 374关注 0票数 0

当比较两个双精度值时,有没有一种本机的或更简单的方法来做加或减。现在我已经做了两次这样的比较,但我觉得应该有一种更干净的方法来做这件事。我们在我们的应用程序中做了很多这样的比较,所以我更喜欢使用最简单和最干净的函数。

代码语言:javascript
复制
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。

EN

回答 3

Stack Overflow用户

发布于 2017-10-26 00:46:00

检查x是否在y2

代码语言:javascript
复制
if abs(x - y) < 2 {
    ...
}

我认为单独理解它已经足够简单了,但为了完整性:

  • 这会将测试移到0左右。如果x恰好等于y,则x - y0。如果xy小两个,那么x - y就是-2。如果大于2,则x - y2。如果它介于两者之间,那么它就在中间的某个地方。因此,有趣的范围是(-2, 2);
  • applying,abs既给出了有趣的[0, 2)范围,又保证没有结果低于0;
  • therefore,只与范围的上端进行比较就足够了。
票数 3
EN

Stack Overflow用户

发布于 2017-10-26 00:27:31

您可以使用模式匹配:

代码语言:javascript
复制
if (y-2)...(y+2) ~= x {
    // your code in case the value is within the range
}
票数 1
EN

Stack Overflow用户

发布于 2017-10-26 00:15:40

根据您的使用情况,检查X是否在一组数字中可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46937260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档