3 回答
TA贡献2080条经验 获得超4个赞
除了从转换ActionTimerComboBox.SelectedValue为双倍之外,一切看起来都很好。这也是错误信息所说的。您必须使用以下内容:
string comboSelectedValue = ActionTimerComboBox.SelectedValue;
double selectedVal =0.0;
if(double.TryParse(comboSelectedValue, out selectedVal)){
settings.ActionTimer = (int)TimeSpan.FromMinutes(selectedVal).TotalMilliseconds;
Console.WriteLine(TimeSpan.FromMinutes(selectedVal).TotalMilliseconds);
}
else
{
Console.WriteLine("Error in conversion");
}
工作示例在这里。此链接可能会帮助您了解有关类型转换的更多信息。
TA贡献1943条经验 获得超7个赞
ActionTimerComboBox.SelectedValue 正在返回字符串,您不能将其转换为 double,您应该尝试使用 double.Parse()、double.TryParse() 或 Convert 类,就像您在此处使用的那样。- 抱歉无法发表评论
TA贡献1831条经验 获得超10个赞
此异常来自以下声明:
((double)ActionTimerComboBox.SelectedValue)
对象到双精度转换抛出无效的强制转换异常。要么先将此对象转换为字符串,然后再将其转换为双精度。
((double)ActionTimerComboBox.SelectedValue.toString());
或者,您也可以使用以下代码:
var val = ActionTimerComboBox.SelectedValue;
if (val is IConvertible)
{
double d = ((IConvertible)val).ToDouble(null);
}
- 3 回答
- 0 关注
- 257 浏览
添加回答
举报