问题标签 [comparison-operators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
112 浏览

c# - 变量比较问题

我对 C# 还比较陌生,这个问题的答案可能很明显,但我正在努力解决它

我有一个枚举定义如下:

然后我有两个变量都定义为类型请求如下

使用 currentRequest = Request.GetData; 分配第一个变量 使用 request = (Request)data 分配第二个局部变量 request,其中 data 是值为 1 的字节(因为该值是从正在接收的 USB 数据的缓冲区中解码的)。我不知道这是否相关,但以防万一。

我想在声明第二个变量的方法中比较它们,我最初是这样做的:

这在大多数情况下都有效,但偶尔会抛出异常,因为这两个值不相等,但是当我在调试器中检查它们时,它们都等于 Request.GetData。这让我想到变量可能是指向对象而不是值的指针,所以我也尝试使用......

同样,这两种方法大部分时间都有效,但偶尔会失败,即使在调试器中检查这些值时它们都是 Request.GetData。

真正让我感到困惑的是,它在大多数情况下都能正常工作,只是偶尔会失败——我希望它要么正常工作,要么不能始终如一地工作。

有任何想法吗?

0 投票
5 回答
17745 浏览

javascript - 使用 == 比较整数和字符串时 JavaScript 中的隐式数据类型转换

编码:

问题:

  1. 在 C 编程中,我们有一个规则名称数据类型提升,当数据类型混合时(例如:整数和浮点数的加法),在执行加法之前,整数将首先转换为浮点数。

  2. 上面的代码将提示我一个警告框,"It works"其中显示if测试条件评估为真的消息。

  3. 对于松散类型的 JavaScript,我很好奇:有没有像 C 一样的规则来确定在哪种情况下执行哪种转换?除此之外,上面的 JavaScript 代码num在进行比较之前将变量值从整数值转换为字符串值,反之亦然?

0 投票
4 回答
165 浏览

python - python - 浓缩比较

我是这里的新成员,也是 python 的新手。我的问题如下,这样的行是否有效?

我在解释器中对此进行了测试,得到的结果不一致。这条线似乎产生了更一致和预期的结果

还是最好明确地把所有东西都安排好

最后一个总是有效的,但我只是想让我的代码更简洁,同时仍然遵循最佳实践。我尝试进行搜索以免提出多余的问题,但搜索“是”、“或”和“和”相当困难。提前感谢您的任何帮助。

编辑:感谢大家的快速回复。当我需要“或”时,这对我来说非常有用

但是,如果我需要一个“和”,我将如何压缩它?

0 投票
3 回答
233 浏览

php - php 运算符 == (某种相等)和整数 0

php,我最亲爱的老朋友。

好的,所以我可以理解为什么字符串 '0' 会是一个虚假值。这是公平的,因为'0'它与松散类型的语言相同0,并且0false松散类型的语言。所以这给出了false== 0== '0'

很好很好......但是!这是怎么回事?

输出是....

这怎么合理?我是唯一对此感到惊讶的人吗?我没看到什么?

进一步的测试证明整数 0 等于(通过运算符 ==)

自然,我主要使用 operator === 来比较东西。既然我知道了这一点,我当然必须调整我的程序,对此毫无疑问。但还是!有人能解释一下吗?

0 投票
0 回答
520 浏览

javascript - 令人困惑的 Javascript 整数比较错误

这可能是一件非常简单的事情,但我一生都无法弄清楚或找到任何类似问题的东西。我对 Javascript 还很陌生,我正在对 HTML 字段进行一些简单的表单验证。手头的两个问题是:

minSquare/maxSquare 是取自 HTML 字段的值。如您所见,平方英尺值(在房地产设置中)应该在 500-5000 之间,并且必须是整数。逻辑是存在的,但是每次我提交表单时,如果值低于 1,000,尽管下限为 500,则会打印不正确的最小平方英尺的错误。对于另一对字段,如果值为低于 100,000,尽管它自己的下限为 30,000,但它不会打印。

出于某种原因,当我输入 500 作为最低金额和 5000 作为最高金额(适当的范围)时,它不会提交任何问题。但是,如果我输入 501 和 5000,它将引发最小值错误。我不知道为什么会这样。我不认为这是浏览器问题。在 Chrome 和 Firefox 上都试过了,同样的问题。任何帮助表示赞赏;问题越愚蠢,我越快解决这个问题 =)

编辑:修复了问题。知道这很简单。根据下面的建议,我只需要解析输入,然后我需要摆脱 RegExp 搜索方法,该方法仅在被搜索的变量是字符串时才有效。感谢那些回答的人。

0 投票
1 回答
11870 浏览

perl - Perl中<=>(小于,等于,大于)的含义?

这个答案中,我看到了语法<=>;这是什么意思?这似乎是基于上下文的某种比较,但我只能收集到这些。部分上下文:

0 投票
6 回答
31342 浏览

sql - sql 使用“小于或等于”和“不大于”

为什么有两个不同的逻辑运算符似乎做同样的事情(<= & !>),有没有一种情况会优先于另一个?

0 投票
3 回答
55314 浏览

javascript - “x 是否大于 y 且小于 z”的表达式?

我正在尝试测试一个数字是否大于 0 但小于 8。我如何在 JavaScript 中做到这一点?

这就是我正在尝试的:

0 投票
6 回答
175 浏览

ruby-on-rails - 为什么 object_a != object_b,如果它们具有完全相同的 id、类型和属性?

我有两个应该相同的用户对象,但 ruby​​ 说它们不是。谁能向我解释这里发生了什么?

自原始发布以来的更新/附加信息:

  • 原来我遇到的问题是间歇性的。它发生在我刷新相关页面的时间的 30% 左右。70% 的时间,A == B,一切都按预期工作。但在 30% 的情况下,A 不等于 B。
  • 当问题发生时,Ruby 实际上告诉我我的对象的类(类型)不一样,即使它们看起来相同(用户和用户)。这是问题发生时 30% 的输出:

.

所以对象的类(类型)看起来完全一样。据说是用户。但是当你评估 a.class == b.class 时,在我渲染页面的 30% 的时间里,答案是错误的,从而导致了问题。

谁能告诉我发生了什么事?非常感谢。

➜ ~ ruby​​ --version
ruby​​ 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
➜ ~ rails --version
Rails 3.0.10

0 投票
4 回答
1876 浏览

sql - 在一个 SQL 查询中使用大于或等于/小于或等于两次

我正在尝试创建基本上是时间戳搜索查询的内容。用户输入所需预订的开始时间和结束时间,搜索会找到该房间在该时间段内的任何当前预订。如果找到匹配项,则告知用户该房间已被预订。

我遇到的问题是当我发送这个查询时:

我没有记录。变量包含正确的信息,所以我怀疑我使用算术运算符的方式是错误的。我环顾四周,发现许多示例都在一个查询中使用了两种类型的比较,但仅针对一列。我还没有发现有人在一个查询中将一个值与一列进行比较,并将一个值与另一列进行比较的例子。

有人知道我做错了什么吗?任何帮助深表感谢。谢谢!

编辑:我在纪元时间设置了时间戳,因此放入搜索的开始时间将大于或等于数据库中已经存在的时间,以介于开始时间和结束时间之间。结束时间倒数,因为投入搜索的时间将小于或等于数据库中的结束时间,介于开始时间和结束时间之间。翻转标志将在数据库中找到预订之外的时间。输入经过验证。