OVH Cloud OVH Cloud

Variables

3 réponses
Avatar
Emmanuel
Bonjour,

J'utilise dans un programme des variables que je déclare de la manière
suivante:
Dim a as integer (ou double ou decimal)
ensuite j'écris a=TextBox1.Text
Le problème est que lorsque j'entre une valeur avec une virgule, j'obtiens
toujours le message suivant: Une exception non gérée du type '
System.InvalidCastException'
s'est produite dans microsoft.visualbasic.dll
Informations supplémentaires: Cast de la chaîne "0.1 (par exemple)" en type
" Integer (par exemple) " non valide.

Comment puis-je résoudre ce problème?

Merci, d'avance pour vos réponses! ...

Emmanuel

3 réponses

Avatar
hendrix
Emmanuel a écrit :
Comment puis-je résoudre ce problème?



remplacer tous les , par des . (ou decimalseparator, si ça existe en vb) ?
Avatar
Fred
Dans : news:,
Emmanuel écrivait :
Bonjour,

J'utilise dans un programme des variables que je déclare de la manière
suivante:
Dim a as integer (ou double ou decimal)
ensuite j'écris a=TextBox1.Text



Utilise une fonction de conversion.
Par exemple :
If Int32.TryParse(TextBox1.Text, a) Then
...

TryParse renvoie un boolean si la conversion réussit et le résultat dans
le second paramètre ByRef (a).
Il y a une surcharge qui permet en outre de préciser le format et la
culture à utiliser (inutile si tu saisis des vrigules).

Ça, c'est en .NET 2.0
Sinon il y a Parse, mais il faut gérer une éventuelle erreur avec Try
Catch

Ou avec Microsoft.VisualBasic.Information.IsNumeric mais je ne pratique
pas trop cet espace de noms.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Fred
Dans : news:e$,
Fred écrivait :
Dans : news:,
Emmanuel écrivait :
Bonjour,

J'utilise dans un programme des variables que je déclare de la
manière suivante:
Dim a as integer (ou double ou decimal)
ensuite j'écris a=TextBox1.Text



Utilise une fonction de conversion.
Par exemple :
If Int32.TryParse(TextBox1.Text, a) Then



Bien sûr Double.TryParse serait un meilleur exemple !

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)