Bonsoir ... j'espère que tout le monde n'est pas en vacances
J'exécute une application VBNet dans laquelle je teste si un champ est numérique ou non.
Si je teste de cette manière ( IsNumeric ne semble pas convenir ):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Dim Value As Double Text = "0,a" If Double.TryParse(Text, Value) Then message "pas de valeur numérique" End if ' Text = "0,6" If Double.TryParse(Text, Value) Then message "valeur numérique" End if ' Text = "0,a" If Double.TryParse(Text, Value) Then message "pas de valeur numérique" End if ' Text = ",6" If Double.TryParse(Text, Value) Then message "valeur numérique" End if '
Ceci tend à prouver que je me retrouve dans un environnement où c'est la virgule qui commence la partie décimale.
Déjà je ne sais pas comment tester cela, et de quoi cela dépend il ? D'un switch quelque part, de ma localisation vue par Windows,
est il toujours le même pour toutes les applications que j'utilise sur mon ordinateur ? Excel, VBNet, ....
Maintenant comment tester si un champ que je recevrais de l'extérieur ( donc cela ne dépend pas de moi ) est numérique mais qui aurait le point comme séparateur?
Le test ne fonctionne plus et donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ' Text = "1.6" If Double.TryParse(Text, Value) Then message "valeur non numérique" End if '
Je dois utiliser ceci ( dont je ne comprends pas encore toute la syntaxe ) ( mais je vais m'y mettre )
Comment faire un seul test pour voir si un champ est numérique avec "," ou avec "." ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ' Dim Text As String = "15.6" If Double.TryParse(Text, Globalization.NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, Value) Then message "valeur numérique" Else message "valeur non numérique" End If
Ou dois je faire deux tests successifs?
Merci de vos pistes.
Pierre
Partager