Déterminer si un nombre est un entier

cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008 - 28 mars 2006 à 23:41
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 29 mars 2006 à 03:24
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

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
28 mars 2006 à 23:49
typeof (int)

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

::|The S@ib|:: MVP C#.NET
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 mars 2006 à 03:24
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" );
0
Rejoignez-nous