web-dev-qa-db-fra.com

C #: la valeur de vérification stockée dans l'objet chaîne est décimale ou non

en C #, comment puis-je vérifier si la valeur stockée dans un objet chaîne (Ex: string strOrderId = "435242A") est décimale ou non?

17
Shyju

Utilisez la fonction Decimal.TryParse .

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

Vous pouvez utiliser Decimal.TryParse pour vérifier si la valeur peut être convertie en type Decimal. Vous pouvez également utiliser Double.TryParse à la place si vous affectez le résultat à une variable de type Double.

Exemple 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

vous pouvez essayer de l'analyser:

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

Ce code simple permet une valeur entière ou décimale et rejette les alphabets et les symboles.

      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

Dans le cas où nous ne voulons pas utiliser de variable supplémentaire.

string strOrderId = "435242A";

bool isDecimal = isDecimal(strOrderId);


public bool isDecimal(string value) {

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

Déclarez la valeur décimale de sortie dans TryParse

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