0

在 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.
4

3 回答 3

7

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

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

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

于 2012-12-12T17:00:14.273 回答
1

您正在使用与 decimal.Parse() 期望的不同的文化(它需要小数点“。”但您提供了一个逗号。使用正确的文化应该正确解析字符串,尽管我可以运行您的代码而不会出现任何错误...

您可以使用 Decimal.Parse(variable, CultureInfo.GetCultureInfo("Culture-Name"));

于 2012-12-12T17:03:32.350 回答
1

您必须使用这种重载Decimal.Parse并提供IFormatProvider与您输入的文化相匹配的内容。您还应该考虑使用其中一种Decimal.TryParse方法来更好地处理错误。

于 2012-12-12T17:04:23.903 回答