如何添加两个数字字符串?

时间:2015-07-29 21:18:45

标签: c# c#-4.0

我正在循环一些节点并获取费用并将它们加在一起。虽然收费是字符串类型。

第一次循环字符串charge =“309”,

第二次循环串充电=“38”;

 `Looping through list of nodes
 {
   saBillDetail.TotalServiceUsage += totalSvcNode.InnerText;
 }
`

我原本以为我可以把它们加在一起,但它们正在连接起来,而不是这样:

`charge + charge = '30938'`

如何强制将这些字符串视为数字?并在循环结束时获得这样的输出

`charge + charge = '347'`

3 个答案:

答案 0 :(得分:3)

正如人们已经回答的那样,这可能是另一种解决方案 所以你不会有错误

    private static int AddTwoStrings(string one, string two) 
    {
        int iOne = 0;
        int iTwo = 0;
        Int32.TryParse(one, out iOne);
        Int32.TryParse(two, out iTwo);
        return iOne + iTwo;
    }

或者如果你想要一个字符串结果。

private static String AddTwoStrings(string one, string two) 
{
    int iOne = 0;
    int iTwo = 0;
    Int32.TryParse(one, out iOne);
    Int32.TryParse(two, out iTwo);
    return (iOne + iTwo).ToString();
}

修改

正如Alexei Levenkov所说,你可以/应该处理异常。 也许这样的事情会在开发过程中帮助你

    private static int AddTwoStrings(string one, string two) 
    {
        int iOne = 0;
        int iTwo = 0;
        bool successParseOne = Int32.TryParse(one, out iOne);
        bool successParseTwo = Int32.TryParse(two, out iTwo);
        if (!successParseOne) 
        {
            throw new ArgumentException("one");
        }
        else if(!successParseTwo)
        {
            throw new ArgumentException("two");
        }

        return (iOne + iTwo);
    }

因此,当您使用错误号码时,如果您使用try / catch

,您将收到通知

答案 1 :(得分:2)

您需要解析字符串中的数字:

string number1 = "309";
string number2 = "38";

int result = int.Parse(number1) + int.Parse(number2);

然后您可以将文本设置为等于该字符串表示:

string addResult = result.ToString();

注意:如果格式不正确,Int32.Parse()将抛出异常。考虑使用Int32.TryParse()以bool方式捕获不可能的解析。

答案 2 :(得分:2)

您需要将字符串转换为整数,添加它们并将结果转换回字符串:

int sum = 0;
foreach (string strNumber in strNumberCollection)
{
    int number;
    if (int.TryParse(strNumber, out number))
        sum += number;
}

string total = sum.ToString();