首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查某些十进制值是否相等

检查某些十进制值是否相等
EN

Stack Overflow用户
提问于 2013-01-24 17:09:58
回答 6查看 202关注 0票数 1

我使用下面这行代码检查小数是否相等,但它显示语法错误。

代码语言:javascript
复制
if (ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_1 == ProgramVariables.MSR_AR_EB_2 == ProgramVariables.MSR_AR_EB_3)

正确的方法是什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-01-24 17:12:06

它应该是:

代码语言:javascript
复制
if (ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_1 
 && ProgramVariables.MSR_AR_EB_1 == ProgramVariables.MSR_AR_EB_2 
 && ProgramVariables.MSR_AR_EB_2 == ProgramVariables.MSR_AR_EB_3)
票数 0
EN

Stack Overflow用户

发布于 2013-01-24 17:12:44

你不能只做A == B == C == D。您必须使用&& (AND)运算符,如下所示:

代码语言:javascript
复制
if (a == b && b == c && c == d && d == e)
{
    // Do something
}

也就是说if a equals b AND b equals c AND c equals d AND d equals e then

这一切为什么要发生?因为equality operator接受两个相同类型的参数。a == b产生一个布尔值(truefalse),您将此结果与c的下一个值进行比较,后者仍然是decimal类型,并且您不能将booleandecimal进行比较,因为它们不是同一类型。

票数 1
EN

Stack Overflow用户

发布于 2013-01-24 17:16:04

==运算符是一个二元运算符,从左到右进行计算。这意味着,它首先进行计算。

代码语言:javascript
复制
ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_1

,它给出一个布尔值,然后将这个布尔值与

代码语言:javascript
复制
(true or false) == ProgramVariables.MSR_AR_EB_2

再给出一个布尔值,然后将第二个布尔值与

代码语言:javascript
复制
(true or false) == ProgramVariables.MSR_AR_EB_3

您会得到一个错误,因为您比较了不兼容类型的值。

比较多个值的正确方法是通过逻辑&& (and)运算符将它们组合在一起,例如

代码语言:javascript
复制
if (ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_1 
    && ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_2 
    && ProgramVariables.MSR_AR_System == ProgramVariables.MSR_AR_EB_3)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14497537

复制
相关文章

相似问题

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