给出错误"输入字符串的格式不正确"

时间:2015-03-18 17:39:29

标签: c#

sw.Start();
System.Net.FileWebResponse res = (FileWebResponse)req.GetResponse();
sw.Stop();

TimeSpan timeToLoad = sw.Elapsed;
TextBox2.Text = timeToLoad.ToString().Trim();

var a=1.1;
a = Convert.ToDouble(TextBox2.Text); //This is where the error is thrown

var threshold=5;

if (a > threshold)
{
    Console.WriteLine("Scale up server");
}
else
{
    Console.WriteLine("Scale down web server");
}

3 个答案:

答案 0 :(得分:1)

如错误所示,您似乎在文本框中输入了无效字符串。例如,输入" foo"在文本框中,由于您正在执行Convert.ToDouble("foo"),因此会导致异常。

使用.TryParse

var a = 1.1;
if (Double.TryParse(TextBox2.Text, out a)) {
    var threshold = 5;
    if (a > threshold) {
        Console.WriteLine("Scale up server");
    } else {
        Console.WriteLine("Scale down web server");
    }
}

说明:Double.TryParse()检查字符串值是否可转换为Double并返回bool。它还会在out参数中写入值供我们使用。

答案 1 :(得分:0)

问题是Convert.ToDouble(TextBox2.Text)部分

var a=1.1;
Double.TryParse(TextBox2.Text, out a)

答案 2 :(得分:0)

您似乎想要比较Ticks逝去而不是整个TimeSpan,下面的代码片段可以帮助您避免错误输出

        Stopwatch sw = new Stopwatch();
        TimeSpan t = sw.Elapsed;
        double v =0;
        Double.TryParse(t, out v);

如果您想要刻度线或其他属性,您也可以使用TimeSpan上的属性

        Stopwatch sw = new Stopwatch();
        TimeSpan t = sw.Elapsed;
        double v =0;
        Double.TryParse(t.Ticks, v);