La conversion de la chaîne "" en type 'Double' n'est pas valide
Résolu
kikou93
Messages postés
416
Date d'inscription
Statut
Membre
Dernière intervention
-
kikou93 Messages postés 416 Date d'inscription Statut Membre Dernière intervention -
kikou93 Messages postés 416 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
ça faisait longtemps que je n'ai pas poser des questions (j'étais trés occupée avec mes études)
j'utilise Visual basic express 2010
je vous explique mon problème et j'espère que quelqu'un pourrait m'aider
j'ai par exemple la condition suivante :
If TextBox1.Text > 0 Then
.....
End if
mais il affiche l'erreur suivante :
La conversion de la chaîne "" en type 'Double' n'est pas valide
j'ai essayer avec :
If CInt(TextBox.Text) > 0
If Val(TextBox.Text) > 0
ça marche, aucun erreur ne s'affiche
mais le problème et que si textBox1.text = 0,009 La valeur qui est prise en compte et 0 et pas 0,009
normalement la condition est vérifiée
J'ai essayé aussi avec :
If CDbl(TextBox.Text) > 0
mais la même erreur s'affiche (La conversion de la chaîne "" en type 'Double' n'est pas valide)
aidez-moi s'il vous plait et merci d'avance pour votre aide
ça faisait longtemps que je n'ai pas poser des questions (j'étais trés occupée avec mes études)
j'utilise Visual basic express 2010
je vous explique mon problème et j'espère que quelqu'un pourrait m'aider
j'ai par exemple la condition suivante :
If TextBox1.Text > 0 Then
.....
End if
mais il affiche l'erreur suivante :
La conversion de la chaîne "" en type 'Double' n'est pas valide
j'ai essayer avec :
If CInt(TextBox.Text) > 0
If Val(TextBox.Text) > 0
ça marche, aucun erreur ne s'affiche
mais le problème et que si textBox1.text = 0,009 La valeur qui est prise en compte et 0 et pas 0,009
normalement la condition est vérifiée
J'ai essayé aussi avec :
If CDbl(TextBox.Text) > 0
mais la même erreur s'affiche (La conversion de la chaîne "" en type 'Double' n'est pas valide)
aidez-moi s'il vous plait et merci d'avance pour votre aide
A voir également:
- La conversion de la chaîne "" en type 'Double' n'est pas valide
- Ethernet n'a pas de configuration ip valide - Guide
- Double ecran - Guide
- Whatsapp double sim - Guide
- Chaine tnt gratuite sur mobile - Guide
- Double driver - Télécharger - Pilotes & Matériel
3 réponses
Bonsoir,
Si ton pic est configuré pour que le point soit le symbole décimal alors 0,009 n'est pas un nombre, 0.009 oui.
A la place de Cquelquechose, utilse la classe Convert, tu pourras choisir quel est le modèle de nombre à utiliser
Si ton pic est configuré pour que le point soit le symbole décimal alors 0,009 n'est pas un nombre, 0.009 oui.
A la place de Cquelquechose, utilse la classe Convert, tu pourras choisir quel est le modèle de nombre à utiliser
Et en plus des conseils de NHenry (bonjour) n'utilise pas d'accents, ou autre modificateur de lettre dans les noms de variable ou fonction.
Si tu dois ouvrir ton projet sur un ordinateur anglais, ça boguera de partout.
je t'ai montré la voie, pas la solution pile poil adaptée à ton cas.
Tu pourrais écrire une fonction que tu appellerais pour chaque TextBox, tu peux aussi faire une méthode d'extension.
Mais si tu appliques exactement ce code, "0.009" ne serait pas accepté
Il y aurait ça
Ce qui permettrait d'accepter "0,009" ou "0.009", mais un grand nombre avec séparation des milliers américaine "1,000,000.001" ne marcherait pas.
Y'a un moment ou il te faudra figer le format d'entrer en utilisant la validation par exemple
Si tu dois ouvrir ton projet sur un ordinateur anglais, ça boguera de partout.
je ne c pas si cette méthode marche mais sa ne me facilite pas le travaille car la condition que j'ai contient beaucoup de textBox
je t'ai montré la voie, pas la solution pile poil adaptée à ton cas.
Tu pourrais écrire une fonction que tu appellerais pour chaque TextBox, tu peux aussi faire une méthode d'extension.
Mais si tu appliques exactement ce code, "0.009" ne serait pas accepté
Il y aurait ça
Dim texte as String = "0,009" Dim toto As Double = Convert.ToDouble(texte.Replace(",","."), CultureInfo.GetCultureInfo("fr-FR"))
Ce qui permettrait d'accepter "0,009" ou "0.009", mais un grand nombre avec séparation des milliers américaine "1,000,000.001" ne marcherait pas.
Y'a un moment ou il te faudra figer le format d'entrer en utilisant la validation par exemple
j'ai configuré la textBox comme suite :
Dim desNuméro() As Char = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Not desNuméro.Contains(e.KeyChar) And Not Asc(e.KeyChar) = 8 Then
e.Handled = True
End If
If e.KeyChar = "."c Or e.KeyChar = ","c Then
e.Handled = True
If Not (TextBox1.Text.Contains(",")) Then TextBox1.AppendText(",")
End If
End Sub
pour que la textBox accepte seulement les numéro (0, 1, 2, 3, 4, 5, 6, 7, 8,9) et la virgule
alors le symbole décimal est la virgule et non le point
même si je tape sur la touche du point, dans la textBox x'est la virgule que s'affiche
je ne c pas si cette méthode marche mais sa ne me facilite pas le travaille car la condition que j'ai contient beaucoup de textBox :
If textBox1.text >0 and textBox2.text>0 and textBox3.text>0 .... and textBox30.text>0 then
.........
End if
Retires aussi l'import automatique de l'espace de nom "Microsoft.VisualBasic".
j'ai décidé d'appliquer la méthode de Whismeril
merci de m'avoir consacré du temps, merci beaucoup