0

C# で記述された Windows フォーム アプリケーションがあります。

価格 textBox を検証して、0.01 と 1200.00 を許可するなどの double 形式の価格のみを受け入れ、ユーザーが文字を入力するとエラーが発生するようにする方法を探しています。

私はコードが似ていることを除いて

String price = tbx_price.Text.Trim();

if price is not a number
{
   error message
}
else{
...

価格文字列に数字のみが含まれているかどうかを確認するには、どのような方法を使用できますか? ユーザーが小数点以下の桁数を使用できるようにする必要があることに注意してください。文字を許可する必要があります。

4

3 に答える 3

7

使用decimal.TryParse:

decimal d;
if (!decimal.TryParse(price, out d)){
    //Error
}

また、価格も検証したい場合(145.255は無効です):

if (!(decimal.TryParse(price, out d) 
           && d >= 0 
           && d * 100 == Math.Floor(d*100)){
    //Error
}
于 2013-05-23T15:49:41.697 に答える
0

価格に関する文化の問題を回避するために、承認済みとマークされた回答を使用する以外に、いつでもこれを使用できます

Convert.ToDouble(txtPrice.Text.Replace(".", ","));
Convert.ToDouble(txtPrice.Text.Replace(",", "."));

これは、アプリでコンバージョンを管理する方法によって異なります。

PS: 必要な評判がまだないため、回答にコメントできませんでした。

于 2014-05-08T19:17:00.737 に答える