在我的程序中,我正在使用一个包含时间(字符串previousTimeVASN)的数据库。 我有一个计时器可以计时总秒数。我想显示previousTimeVASN的总和+总秒数。
我显示以下错误:
“ System.FormatException:'输入字符串的格式不正确。'”在线:double test1 = Convert.ToDouble(previousTimeVASN);
任何建议都令人赞赏。
private void sNbtn_Click(object sender, RoutedEventArgs e)
{
TabControl.SelectedIndex = 1;
dtVASN.Tick += new EventHandler(dtVASN_Tick);
dtVASN.Interval = new TimeSpan(0, 0, 0, 0, 1);
}
void dtVASN_Tick(object sender, EventArgs e)
{
if (swVASN.IsRunning)
{
TimeSpan tsVASN = swVASN.Elapsed;
double test = tsVASN.TotalSeconds;
double test1 = Convert.ToDouble(previousTimeVASN);
txtVASN.Text = (test + test1).ToString();
}
}
答案 0 :(得分:1)
如果value不是有效格式的数字,则方法Convert.ToDouble
将抛出FormatException
。您在此处得到相同的意思是previousTimeVASN
中的值不是数字或不是预期的格式。这是您检查转换是否可行的另一种选择,即Double.TryParse Method
以指定的样式转换数字的字符串表示形式 和特定于文化的格式为其双精度浮点数 等价的数字。返回值指示是否转换 成功或失败。
因此,可以对代码进行如下修改:
if (swVASN.IsRunning)
{
TimeSpan tsVASN = swVASN.Elapsed;
double test = tsVASN.TotalSeconds;
double test1;
Double.TryParse(previousTimeVASN, out test1);
txtVASN.Text = (test + test1).ToString();
}
如果要警告用户第二个数字无效,则可以使用如下的parse返回值:
if(Double.TryParse(previousTimeVASN, out test1))
txtVASN.Text = (test + test1).ToString();
else
txtVASN.Text = "previous Time VASN is not valid:'