我正在循环一些节点并获取费用并将它们加在一起。虽然收费是字符串类型。
第一次循环字符串charge =“309”,
第二次循环串充电=“38”;
`Looping through list of nodes
{
saBillDetail.TotalServiceUsage += totalSvcNode.InnerText;
}
`
我原本以为我可以把它们加在一起,但它们正在连接起来,而不是这样:
`charge + charge = '30938'`
如何强制将这些字符串视为数字?并在循环结束时获得这样的输出
`charge + charge = '347'`
答案 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();