【问题标题】:How to use math operators with strings? [duplicate]如何在字符串中使用数学运算符? [复制]
【发布时间】:2015-10-11 09:03:20
【问题描述】:

当用户输入介于 >=0 和

private void voltageTextBox_TextChanged(object sender, EventArgs e)
{
    var RTPower = powerTextBox.Text;
    powerTextBox.CharacterCasing = CharacterCasing.Upper;

    if (RTPower >= 0 && <= 1)
    {
        displayLabel4.Text = "1";
    }
}

错误:运算符“>=”不能应用于“字符串”和“整数”类型的操作数

错误:运算符“

如何使 if 语句起作用?我是否必须将其保留为字符串,在标签中显示,将标签转换为整数然后重新显示?我知道我可以完成这项工作,但这太复杂了。我只需要一种更简单的方法来做到这一点。

【问题讨论】:

  • 是的,您需要将其转换为整数才能对其进行操作。
  • 如果您不想做所有这些“工作”,请使用 NumericUpDown 并设置适当的最小值/最大值。
  • 你可以使用double.TryParse
  • 你在&amp;&amp; &lt;= 1有错误

标签: c# visual-studio-2010 operators


【解决方案1】:
int RTPower = Int32.Parse(powerTextBox.Text);

或十进制值

decimal RTPower = Decimal.Parse(powerTextBox.Text);

您需要将值从字符串转换为 int。

另外,我假设您是 c# 新手 - 我的建议是避免使用 var 并显式声明您的变量。它将使事情变得清晰,更容易让您学习和理解。

【讨论】:

  • 我需要它与十进制进行比较并读取 0。当我开始输入 0.1、.72、0.59 等值时,您给我的第一个答案不起作用
  • 为你更新了答案。
【解决方案2】:

你可以转换成int喜欢

int x = Int32.Parse(RTPower);

那么你可以比较x。


但是,如果您知道用户输入将介于 [0, 9] 之间,那么您可以使用

if(RTPower >= "0" && <= "1")

因为字符串是按字典顺序比较的,所以“1”在“9”之下,而“10”在“2”之下。

第一种方法要好得多,因为它适用于所有数字用户输入

【讨论】:

  • 我需要它与十进制进行比较并读取 0。当我开始输入 0.1、.72、0.59 等值时,您给我的第一个答案不起作用
猜你喜欢
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 2012-10-16
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
相关资源
最近更新 更多