在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.
答案 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来更好地处理错误。