将文本1.文本转换为双精度文本



我正在做答案显示的一切,但我收到了一个与日期时间字符串相关的错误:

当将字符串转换为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...]
}

最新更新