我正在做答案显示的一切,但我收到了一个与日期时间字符串相关的错误:
当将字符串转换为DateTime[不尝试]时,在将eacdh变量放入DateTime对象之前,解析字符串以获取日期
根本不尝试转换为日期-这是一个只能加倍的字符串。
所有这些都失败了,上面有确切的错误消息,但这些都被列为该网站上问题的答案:
Convert.ToDouble(text1.Text);
Convert.ToDouble(Convert.ToString(text1.Text));
Double.TryParse(text1.Text, out value);
Double.Parse(text1.Text).ToString();
Double.Parse(text1.Text, CultureInfo.InvariantCulture)
我要在框中输入什么才能让它抛出这个错误?
[nothing]
a
x
b
c
我正在尝试将字符串转换为double;当我查看Text1.Text的属性时,它被列为一个字符串,所以我认为在转换为十进制(woah)之前尝试将字符串转换为字符串是多余的。正如你所看到的,我仍然尝试了,以防。
在MS的一个例子中,他们将其与小数一起使用:
CultureInfo culture;
decimal number = Decimal.Parse(text1.Text, culture.NumberFormat);
我在这个(culture
)上使用了未分配的局部变量错误;此外,我在另一个例子中没有看到这一点,所以这是一种非常特殊的解决方法,但也许这是实现这一点的新方法?
一个不同的测试,一个是直接输入代码,另一个来自文本框:
/// No error:
Convert.ToDouble("0.85");
/// Error:
Convert.ToDouble(txt1.Text);
Convert.ToDouble(txt1.Text);
:的堆栈跟踪
在System.Number.ParseDouble(字符串值,NumberStyles选项,NumberFormatInfo numfmt)在System.Convert.ToDouble(字符串值)
在BaseUtilityForm.Form1.btnDone_Click(Object sender,EventArgs e)中c: \Users\user\Documents\Visual Studio2013\Projects\Project\Project\cs:line 89System.Windows.Forms.Control.OnClick(EventArgs e)位于System.Windows.Forms.Button.OnClick(EventArgs e)位于System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)位于System.Windows.Forms.Control.WmMouseUp(消息&m,鼠标按钮按钮,Int32次点击)System.Windows.Forms.Control.WndProc(消息&m)位于System.Windows.Forms.ButtonBase.WndProc(消息&m)
格式异常消息:
{"Input string was not in a correct format."}
问题是接收到的消息令人困惑,但根本原因是这些转换方法期望文本值可以转换。如果无法转换文本值,则会发生异常。
Convert.ToDouble(text1.Text);
Convert.ToDouble(Convert.ToString(text1.Text));
Double.Parse(text1.Text).ToString();
Double.Parse(text1.Text, CultureInfo.InvariantCulture)
为了避免异常:
double value;
if(Double.TryParse(text1.Text, out value)
{
[...do stuff with valid value here...]
}