web-dev-qa-db-ja.com

C#:文字列オブジェクト内に保存されている値が10進数かどうかをチェックします

c#では、文字列オブジェクト(例:文字列strOrderId = "435242A")内に格納されている値が10進数であるかどうかをどのように確認できますか?

17
Shyju

Decimal.TryParse 関数を使用します。

decimal value;
if(Decimal.TryParse(strOrderId, out value))
  // It's a decimal
else
  // No it's not.
33
Brandon

Decimal.TryParse を使用して、値がDecimalタイプに変換できるかどうかを確認できます。結果をDouble型の変数に割り当てる場合は、代わりに Double.TryParse を使用することもできます。

MSDNの例:

string value = "1,643.57";
decimal number;
if (Decimal.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);
27
Meta-Knight
decimal decValue;

if (decimal.TryParse(strOrderID, out decValue)
{ / *this is a decimal */ }
else
{ /* not a decimal */}
4
Jamie M

あなたはそれを解析してみるかもしれません:

string value = "123";
decimal result;
if (decimal.TryParse(value, out result))
{
    // the value was decimal
    Console.WriteLine(result);
}
3
Darin Dimitrov

この単純なコードは、整数または10進数の値を許可し、アルファベットと記号を拒否します。

      foreach (char ch in strOrderId)
        {
            if (!char.IsDigit(ch) && ch != '.')
            {

              MessageBox.Show("This is not a decimal \n");
              return;
            }
           else
           {
           //this is a decimal value
           }

        }
1
anand360

追加の変数を使用したくない場合。

string strOrderId = "435242A";

bool isDecimal = isDecimal(strOrderId);


public bool isDecimal(string value) {

  try {
    Decimal.Parse(value);
    return true;
  } catch {
    return false;
  }
}
1
zubair gull

TryParseで10進数の値を宣言する

if(Decimal.TryParse(stringValue,out decimal dec))
{
    // ....
}
0
Dale Kilian