Virgule et point

Résolu
Bonjour,

comment expliquer que

Dim Cout As Double
Cout = ((TXT_LONGUEUR.Text / 100) * TXT_CONSOMMATION.Text * TXT_PRIX.Text)


après m'être assuré plus haut dans le code que isnumeric est vrai pour les trois *.text
si je mets dans un des *.text: 2.5 avec le point du pavé numérique cela ne marche pas
alors que si je mets la , cela marche même si après avoir tapé la virgule il affiche 2.5 dans le *text
alors que les paramètres de mon clavier sont francais(france)
je ne comprends pas à quoi sert donc le . du pavé numérique

5 réponses

  1. tu vas dans parametres , heure s et langues ,régions
    en haut à droite tu cliques sur Paramètres de date, heure et régionaux supplémentaires puis sur région , tu cliques sur , modifier les formats de date ,d'heure ou de nombre , tu vas dans l'onglet Formats et tu cliques sur Paramètres supplémentaires et tu remplaces la virgule par le point dans l'onglet décimal puis appliquer puis ok ....
    voilà
    1. voilà le code
      Public Class Form1
      Dim Bon As Boolean
      Private Sub BTN_QUITTER_Click(sender As Object, e As EventArgs) Handles BTN_QUITTER.Click
      End
      End Sub

      Private Sub Consommation(sender As Object, e As EventArgs) Handles TXT_CONSOMMATION.TextChanged
      If Not IsNumeric(TXT_CONSOMMATION.Text) Or TXT_CONSOMMATION.Text = "" Then
      Bon = False
      Else
      Bon = True

      End If
      End Sub

      Private Sub Longueur(sender As Object, e As EventArgs) Handles TXT_LONGUEUR.TextChanged
      If Not IsNumeric(TXT_LONGUEUR.Text) Or TXT_LONGUEUR.Text = "" Then
      Bon = False
      Else
      Bon = True

      End If
      End Sub

      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

      End Sub

      Private Sub Prix(sender As Object, e As EventArgs) Handles TXT_PRIX.TextChanged
      If Not IsNumeric(TXT_PRIX.Text) Or TXT_PRIX.Text = "" Then
      Bon = False
      Else
      Bon = True

      End If
      End Sub

      Private Sub BTN_CALCULER_Click(sender As Object, e As EventArgs) Handles BTN_CALCULER.Click

      Dim Cout As Double

      Cout = CDbl(((TXT_LONGUEUR.Text / 100) * TXT_CONSOMMATION.Text * TXT_PRIX.Text))

      If Bon = False Then
      LBL_ATTENTION.Text = "Soyez gentils ne mettez pas n'importe quoi"
      Else

      LBL_COUTV.Text = "le coût du voyage est " & Cout & "euros"

      End If
      End Sub
      End Class

      et voilà le message d'erreur qui apparait quand j'utilise le . du pavé ou le . du clavier



      merci d'une réponse
      je ne comprends pas pourquoi le . n'est pas interprété comme la virgule
      cordialement
      1. Contributeur
        peux-tu plutôt essayer ceci:
        Dim Cout As Double
        Cout = CDbl(TXT_LONGUEUR.Text)
        Cout=Cout/100
        Cout=Cout * TXT_CONSOMMATION.Text
        Cout=Cout * TXT_PRIX.Text
      2. Contributeur
        par ailleurs, ta logique est viciée: ta variable nommée Bon ne mémorise que le résultat du dernier test.
    2. Contributeur
      bonjour, "cela ne marche pas": veux-tu dire que isnumeric retourne faux?
      1. Contributeur
        peux-tu préciser quels logiciels tu utilises, et dans quelles langues?

        si je lis bien, tu as testé avec la virgule, avec le point du pavé numérique, mais pas avec le point du clavier normal.