salut
Je cherche l'équivalent de IsNumeric de VB...
en fait je veux savoir si une valeur saisie ds un textbox est une valeur numérique...
thanks
Version imprimable
salut
Je cherche l'équivalent de IsNumeric de VB...
en fait je veux savoir si une valeur saisie ds un textbox est une valeur numérique...
thanks
voila:
http://www.developpez.net/forums/vie...ight=isnumeric
avec la methode de morpheus!
merci pour le lien et pour le code
a+
Salut,
J'ai trouvé le code mais j'ai des problème quand je passe certains string en parametre. il retourne true...
exempleCode:
1
2
3
4
5
6
7
8 private bool Is_Int( string str ) { Regex numregex = new Regex("\\d"); Match found = numregex.Match(str); return found.Success; }
ça me renvoie true...Code:
1
2 Is_Int("1222kjjk");
Que signifie le" \\d" que prend en parametre Regex?
merci
ah oui tiens normalement \\d c'est pour digit
Regex("^-[0-9]*$"); alors
Ben et 2.50 ? C'est pas numeric ? :wink:Citation:
Envoyé par Piotrek
Je proposerai un truc comme :
ça gère les décimals, les nombres négatifs et les nombres formattés avec une virgule (ou decimaux anglo-saxon)...On pourrait encore améliorer pour gérer les nombres formattés avec apostrophe (1'000'000)...Code:
1
2
3
4
5
6
7
8
9 private bool IsNumeric( string str ) { Regex numregex = new Regex("^(\d|-)?(\d|,)*\.?\d*$"); Match found = numregex.Match(str); return found.Success; }
A noté que la Regex que j'avais montré était particulière à mon cas :)
Mais celle de Keihilin me semble bien pratique.
Merci :wink:
Je m'excuse de déranger mais
quand j'utilise ceci
il me permet de taper ceci par exemple:Code:
1
2 Regex numregex = new Regex("^(\d|-)?(\d|,)*\.?\d*$")
258.25.2
ou bien
354,58,574
c a d deu fois une virgule ou un point.
je veux éviter cela, comment je fais?
il accepte plutot les deux virgules, je m'excuse... :lol:
354,58,574 c'est normal, les , sont considérées comme du formattage.Citation:
Envoyé par yannick
Par contre, 258.25.2 c'est pas possible...et je viens de retester chez moi.
Bon c'est vrai que les regex, c'est pas le top, si en plus l'appli doit fonctionner dans plusieurs cultures differentes, c'est meme pas la peine
Les exceptions c'est hors de question
Donc mesdames et messieurs je vous presente: Double.TryParse
Yup, environ 25 fois plus rapide qu'avec RegEx et plus de 100 fois plus que les exceptions :)Citation:
Envoyé par Piotrek
Cela dit, s'ils avaient mis ça au niveau de CultureInfo, ça aurait été un poil plus logique :)
Effectivement j'utilise Double.tryParse maintenant.
Avant je faisais une boucle pour parcourir la chaine, et je testais si chaque caractère était bien un digit avec char.IsDigit() ou si c'était le séparateur décimal de la culture invariant