Déterminer si un nombre est un entier

Signaler
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour,

actuellement pour déterminer si un nombre n est un entier, je proçède comme ceci :

int i;
bool EstUnEntier = true;


try
{
i=
int.Parse(n);
}



catch
{
EstUnEntier = false;

}

Mais c'est un peu lourd et je me demandais si il n'y avais pas un façon plus simple de procéder. La méthode GetType() me permet de récupérer le type, mais quand j'écris :
if (n.GetType() == int)
J'obtiens un erreur. En fait j'ai essayé pleins de manière d'écrire le membre de droite dans l'égalité ci-dessus mais j'obtiens toujours une erreur...
Pourriez-vous m'indiquer comment on à l'habitude de procéder pour faire un tel test ?

Merci d'avance.


Mathmax
A voir également:

2 réponses

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
15
typeof (int)

Tu veux savoir si c'est un int ou un nombre simplement ?

::|The S@ib|:: MVP C#.NET
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
33
Il existe l'opérateur is ( et as ) pour tester le type d'un objet, ces opérateurs son surtout utiles pour deviner le vrai type d'un objet casté précédemment.

Si dans ton exemple n est une chaine, la méthode Int.TryParse ( en .NET 2.0 ) est moin lourde, si n est un char il y'a la méthode Char.IsDigit.

int i = 10;
object o = i;


if ( o is int )
MessageBox.Show( "le vrai type est int" );