private void textBox1_TextChanged(object sender, EventArgs e)
{
var x = textBox1.Text;
var y = 1000000;
var answer = x * y;
}
这是我目前的代码。我想从textBox1
获取用户输入并将其乘以1000000,因为它需要转换用户输入。但是这段代码并不是因为x
技术上不是一个数值。我将如何实现这一功能?
答案 0 :(得分:3)
这是获取文字,而不是数字:
var x = textBox1.Text;
由于C#是静态类型的,因此您需要将其明确地转换为数字。为此,您可以使用int.TryParse()
之类的内容。例如:
var xText = textBox1.Text;
var x = 0;
if (!int.TryParse(xText, out x))
{
// display an error to the user
return;
}
var y = 1000000;
var answer = x * y;
这样您就可以测试文本输入是否可以解析为数字,如果不能,则会向用户显示消息。而不是假设输入并获得未处理的异常。
对于其他数字类型,还有TryParse()
个方法,以防您想要使用double
或float
之类的其他计算方法。
答案 1 :(得分:2)
如果您确定用户输入是数字,则可以使用Int32.Parse
;如果需要验证,则可以使用int.TryParse
。
我假设整数输入只是可能是错误的。同样适用于其他数字类型。 (他们都有Parse
和TryParse
)
使用Int32.Parse
private void textBox1_TextChanged(object sender, EventArgs e)
{
var x = Int32.Parse(textBox1.Text); // you're sure text is numeric
var y = 1000000;
var answer = x * y;
}
使用Int32.TryParse
private void textBox1_TextChanged(object sender, EventArgs e)
{
int x = 0;
if (Int32.TryParse(textBox1.Text, out x)) // you're NOT sure if text is numeric
{
var y = 1000000;
var answer = x * y;
}
else
{
// let the user know that numeric values are required
}
}
答案 2 :(得分:-4)
这将为您提供数值
private void textBox1_TextChanged(object sender, EventArgs e)
{
float x = Float.Parse(textBox1.text, CultureInfo.InvariantCulture);
float y = 1000000;
float answer = x * y;
}