【问题标题】:Add numbers in c#在c#中添加数字
【发布时间】:2011-09-06 16:25:40
【问题描述】:

我有一个数字文本框,我需要将它的值添加到另一个数字 我试过这段代码

String add = (mytextbox.Text + 2)

但是它将数字 2 添加为另一个字符,例如如果我的文本框的值为 13,结果将变为 132

【问题讨论】:

  • 快速提问:这是 WPF/Silverlight 应用程序,还是 Winforms 应用程序,或其他类型的应用程序?

标签: c# numbers add


【解决方案1】:

mytextbox.Text 的类型是字符串。您需要将其解析为数字才能执行整数运算,例如

int parsed = int.Parse(mytextbox.Text);
int result = parsed + 2;
string add = result.ToString(); // If you really need to...

请注意,您可能希望使用int.TryParse 来处理文本框的内容不是整数的情况,而不必捕获异常。例如:

int parsed;
if (int.TryParse(mytextbox.Text, out parsed))
{
    int result = parsed + 2;
    string add = result.ToString();
    // Use add here    
}
else
{
    // Indicate failure to the user; prompt them to enter an integer.
}

【讨论】:

    【解决方案2】:
    String add = (Convert.ToInt32(mytextbox.Text) + 2).ToString();
    

    您需要将文本转换为整数才能进行计算。

    【讨论】:

    • 感谢大家的帮助,但我认为 Mattias 的回答是最简单的方法
    【解决方案3】:
    const int addend = 2; 
    string myTextBoxText = mytextbox.Text;
    var doubleArray = new double[myTextBoxText.ToCharArray().Length];
    for (int index = 0; index < myTextBoxText.ToCharArray().Length; index++)
    {
        doubleArray[index] = 
            Char.GetNumericValue(myTextBoxText.ToCharArray()[index]) 
            * (Math.Pow(10, (myTextBoxText.ToCharArray().Length - 1) - index));
    }
    string add  = 
        (doubleArray.Aggregate((term1, term2) => term1 + term2) + addend).ToString();
    

    【讨论】:

    • 哈哈……这里面隐藏的美怎么看不出来?!
    【解决方案4】:
    string add=(int.Parse(mytextbox.Text) + 2).ToString()
    

    如果您想确保转换不会引发任何异常

      int textValue = 0;
      int.TryParse(TextBox.text, out textValue);
      String add = (textValue + 2).ToString();
    

    【讨论】:

      【解决方案5】:
      int intValue = 0;
      if(int.TryParse(mytextbox.Text, out intValue))
      {
          String add = (intValue + 2).ToString();
      }
      

      我更喜欢 TryPase,那么您知道后备将为零(或者您定义为 intValue 的默认值)

      【讨论】:

      • 如果你要使用TryParse,我认为实际使用返回值通常会更好。此外,intValue 的现有值 不是 用作默认值 - 它是一个 out 参数,这意味着原始值被忽略;它甚至不必明确分配。
      【解决方案6】:

      可以使用int.Parse方法将文本内容解析成整数:

      String add = (int.Parse(mytextbox.Text) + 2).ToString();
      

      【讨论】:

        【解决方案7】:

        其他人发布了最常见的答案,但只是为了给您一个替代方案,您可以使用属性来检索 TextBox 的整数值。

        如果您需要多次重复使用整数,这可能是一个好方法:

        private int MyTextBoxInt
        {
            get
            {
                return Int32.Parse(mytextbox.Text);
            }
        }
        

        然后你可以像这样使用这个属性:

        int result = this.MyTextBoxInt + 2;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-06
          • 2012-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多