0

Form_load で私が持っている

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

そして別の関数で、テキストを10進数として解析したい

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

しかし、2行目にエラーがあります

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 に答える