2009-11-13 2 views

Répondre

23

Utilisez la fonction Decimal.TryParse.

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

Ceci fonctionnera uniquement si un nombre quelconque peut être considéré comme un nombre décimal. Si vous avez besoin de distinguer les types numériques, il considérera les types entiers comme des décimales. –

+0

J'ai essayé, mais je ne peux pas entrer un point décimal. – MissPiplup

+0

Vous devez prendre en compte le format décimal et la culture actuelle. Par exemple, la valeur décimale correcte pour en-Us 643.57 n'analyse pas dans la culture ru-RU par cette méthode. –

23

Vous pouvez utiliser Decimal.TryParse pour vérifier si la valeur peut être convertie en un type décimal. Vous pouvez également utiliser Double.TryParse 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); 
3
decimal decValue; 

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

vous pouvez essayer l'analyser:

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

Ce code simple permettra entier ou valeur décimale et rejette alphabets et 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 
      } 

     } 
Questions connexes