1

私はC#を学習していて、ユーザーが有効な通貨額を入力したかどうかを確認する必要があるという問題に悩まされています。つまり、英字や負の数はありません。

これまでのところ、特定の入力検証を除いて、プログラム内のすべてが完了しています。

入力を数値に変換するには、次のようにします。originalRate = Double.Parse(txtValue.Text);

その下で私は困惑しています、私はいじり回っています:bool isValid = Double.TryParse(txtValue.Text、);

私がいじり回している間に私が得る一般的なコンパイラ実行時エラーは、入力文字列が正しい形式ではなかったということです。私が知っているのは、それが私がチェックしていることです。私はこれが非常に基本的なものであることを知っています(これは私の最初のC#クラスです)。私はスタックオーバーフローを検索しましたが、現時点では同様のソリューションはどれも私にはあまり意味がありません。10進数クラスのTryParseメソッドを使用するように言われましたが、間違って不完全に使用しているように感じます。

よろしくお願いします。

4

2 に答える 2

3

使い方は次のとおりですdouble.TryParse()

double d;
bool isValid = Double.TryParse(txtValue.Text, out d);

MDSNページにはいくつかの例があります。

通貨文字列を解析するには、次の2番目のオーバーロードを使用できます。double.TryParse()

次のようなものを試してください

double d;
bool isValid = double.TryParse(txtValue.Text, NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"), out d);
于 2011-10-08T22:09:34.663 に答える
2
double result;

if (double.TryParse(txtValue.text, out result))
{
    // The user typed a valid number.
    // Do something with it (it’s in “result”).
}
else
{
    // The user typed something invalid.
    MessageBox.Show("Please type in a number.");
}
于 2011-10-08T22:10:34.613 に答える