我发现了一个错误
System.FormatException:'输入字符串的格式不正确。'
在我的c#项目中。我想将我的十进制值转换为round,但如果值为" 7.99"它的输出仅为7,而在" b"。我使用这个功能,但我失败了。
void Calculation()
{
double a = Convert.ToDouble(lblTFPc.Text); **//Error appears here**
double b = Convert.ToDouble(lbl1.Text);
double c = Convert.ToDouble(lblTPc.Text);
double d = Convert.ToDouble(lblSchOn.Text);
try
{
a = (c / d);
b = Math.Floor(a +0.0);
}
catch (Exception ex)
{
MetroFramework.MetroMessageBox.Show(this, "Error" + ex, "Stop", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
我改变了方式,但仍然是错误
void Calculation()
{
try
{
decimal a = Convert.ToDecimal(txtValue.Text);
decimal b = Convert.ToDecimal(lblCtn.Text);
decimal c = Convert.ToDecimal(lblPc.Text);
decimal d = Convert.ToDecimal(lblCtnInPc.Text);
decimal e = Convert.ToDecimal(txtQtyCtn.Text);
decimal f = Convert.ToDecimal(lblCtnSize.Text);
decimal g = Convert.ToDecimal(lblTotalPc.Text);
decimal h = Convert.ToDecimal(txtQtyPc.Text);
decimal i = Convert.ToDecimal(txtTotalFreePc.Text); **//error is here I change lbl into txtbox but error still**
decimal j = Convert.ToDecimal(lblSchemeOn.Text);
decimal k = Convert.ToDecimal(lbl1.Text);
a = (b + c);
d = (e * f);
g = (h + d);
i = (g / j);
k = Math.Floor(i);
}
catch (Exception ex)
{
MetroFramework.MetroMessageBox.Show(this, "Error" + ex, "Stop", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
尝试错误是这样的:
ErrorSystem.FormatException:输入字符串的格式不正确。 at System.Number.StringToNumber(String Str,NumberStryles options,NumberBuffer number,NumberFormatInfo info,Boolean parseDecimal) at System.Number.ParseDecimal(String value,NumberStyles options,NUmberFormatInfo numfmt) atSystem.Convert.ToDecimal(String value) 在[Filepath]中的MyProject.Forms.frmPurchaseItem.Calculation()
答案 0 :(得分:0)
您是否尝试使用文本框“0,55”值而不是“0.55”。或者你也可以使用TryParse函数。
double result=0;
if(Double.TryParse(lblTFPc.Text, out result))
...
答案 1 :(得分:0)
lbl是标签的Control缩写,textbox的缩写是txt。检查文本属性中的标签是否包含文本而不是数字。也许你把标签而不是文本框。如果有文本,则Convert.ToDouble()无法执行转换。