【问题标题】:if or statement with variables that equal decimals变量等于小数的 if 或语句
【发布时间】:2014-11-13 23:51:43
【问题描述】:

我有这样的 if 语句

decimal var1, var2;
if(var1 == 0.00 || var2 == 0.00)
{
  ...
} 

编译器显示错误:

运算符“==”不能应用于'decimal''double' 类型的操作数

我也试过了

If(var1 = 0.00 || var2 = 0.00){
  //this
}

编译器显示错误:

运算符“||”不能应用于'decimal''double' 类型的操作数

我做的第三件事是让0.00"0.00" 这样的字符串在前面的两种方法中只是为了看看它是否会做任何不同的事情。

【问题讨论】:

  • 您可能已经得到了答案。但是 FWIW 您不应该将浮点数与 ==!= 进行比较。对于十进制,这很好。参考this
  • 旁注:请发布完整的编译错误消息...这应该类似于非常自我解释的“运算符'=='不能应用于'十进制'和'双'类型的操作数”这个案例。
  • 我会确保从现在开始这样做,我会将其添加到此内容中,以使其对将来查看此内容的人更有帮助。

标签: c# if-statement


【解决方案1】:

0.00 被视为double。您不能直接将== 运算符与双精度和小数一起使用。您需要将值转换为 decimal 或使用 m 文字使编译器将其视为十进制:

if(var1 == 0.00m || var2 == 0.00m)

【讨论】:

  • +1。请注意,对于彼此之间没有Implicit Numeric Conversion 的任何类型之间的所有比较,都会发生类似的行为。
猜你喜欢
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多