【发布时间】:2011-09-06 16:25:40
【问题描述】:
我有一个数字文本框,我需要将它的值添加到另一个数字 我试过这段代码
String add = (mytextbox.Text + 2)
但是它将数字 2 添加为另一个字符,例如如果我的文本框的值为 13,结果将变为 132
【问题讨论】:
-
快速提问:这是 WPF/Silverlight 应用程序,还是 Winforms 应用程序,或其他类型的应用程序?
我有一个数字文本框,我需要将它的值添加到另一个数字 我试过这段代码
String add = (mytextbox.Text + 2)
但是它将数字 2 添加为另一个字符,例如如果我的文本框的值为 13,结果将变为 132
【问题讨论】:
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.
}
【讨论】:
String add = (Convert.ToInt32(mytextbox.Text) + 2).ToString();
您需要将文本转换为整数才能进行计算。
【讨论】:
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();
【讨论】:
string add=(int.Parse(mytextbox.Text) + 2).ToString()
如果您想确保转换不会引发任何异常
int textValue = 0;
int.TryParse(TextBox.text, out textValue);
String add = (textValue + 2).ToString();
【讨论】:
int intValue = 0;
if(int.TryParse(mytextbox.Text, out intValue))
{
String add = (intValue + 2).ToString();
}
我更喜欢 TryPase,那么您知道后备将为零(或者您定义为 intValue 的默认值)
【讨论】:
TryParse,我认为实际使用返回值通常会更好。此外,intValue 的现有值 不是 用作默认值 - 它是一个 out 参数,这意味着原始值被忽略;它甚至不必明确分配。
可以使用int.Parse方法将文本内容解析成整数:
String add = (int.Parse(mytextbox.Text) + 2).ToString();
【讨论】:
其他人发布了最常见的答案,但只是为了给您一个替代方案,您可以使用属性来检索 TextBox 的整数值。
如果您需要多次重复使用整数,这可能是一个好方法:
private int MyTextBoxInt
{
get
{
return Int32.Parse(mytextbox.Text);
}
}
然后你可以像这样使用这个属性:
int result = this.MyTextBoxInt + 2;
【讨论】: