无法将文本解析为Decimal

时间:2012-12-12 16:58:25

标签: c# .net winforms

在Form_load中我有

txtAlteFonduri.Text = "5,00";
txtFReparatii.Text = "15,00";
txtFRulment.Text = "20,00";

并在另一个函数中我想解析文本为十进制

decimal alteFonduri = Decimal.Parse(txtAlteFonduri.Text);
decimal fondRulment = Decimal.Parse(txtFRulment.Text);
decimal fondRepar = Decimal.Parse(txtFReparatii.Text);

但我在第二行有错误

Input string was not in a correct format.

3 个答案:

答案 0 :(得分:7)

您需要专门添加数字格式。对于上面的示例,以下内容应该有效:

decimal alteFonduri = Decimal.Parse(txtAlteFonduri.Text, CultureInfo.GetCulture("de-DE"));

否则,使用系统的文化信息。

答案 1 :(得分:1)

您正在使用不同的文化来表示decimal.Parse()所期望的(它需要小数点'。'但是您提供了一个逗号。使用正确的文化应该正确解析字符串,尽管我可以运行您的代码有任何错误......

您可以使用Decimal.Parse(变量,CultureInfo.GetCultureInfo(“Culture-Name”));

答案 2 :(得分:1)

您必须使用this overload of Decimal.Parse并提供符合您输入文化的IFormatProvider。您还应该考虑使用其中一个Decimal.TryParse methods来更好地处理错误。