获取用户输入并将其乘以数字

时间:2015-06-30 17:12:14

标签: c# visual-studio-2012

private void textBox1_TextChanged(object sender, EventArgs e)
{
    var x = textBox1.Text;
    var y = 1000000;
    var answer = x * y;
}

这是我目前的代码。我想从textBox1获取用户输入并将其乘以1000000,因为它需要转换用户输入。但是这段代码并不是因为x技术上不是一个数值。我将如何实现这一功能?

3 个答案:

答案 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()个方法,以防您想要使用doublefloat之类的其他计算方法。

答案 1 :(得分:2)

如果您确定用户输入是数字,则可以使用Int32.Parse;如果需要验证,则可以使用int.TryParse

我假设整数输入只是可能是错误的。同样适用于其他数字类型。 (他们都有ParseTryParse

使用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;
        }