ロック済み arithmétique

  • 2010年9月5日 18:31
     
      コードあり

    bonjour,j'ai un problème c'est que j'arrive pas à calculer à partir de ce code:

    Public Class Form1
    
    
    
    
    
    
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    
    
     Dim a As Double = TextBox2.Text
    
    
    
     Dim b As Double = TextBox1.Text
    
    
    
     MsgBox(a - b)
    
    
    
    
    
    
    
     End Sub
    
    
    
    End Class

    quand je fait le débogage

    de 3.5-2.6

    je reçoi le merssage suivant:

    La conversion de la chaîne "2.6" en type 'double' n'est pas valide.

    merci d'avance;.

     

すべての返信

  • 2010年9月5日 20:20
     
     回答済み コードあり

    Bonjour,

    Si votre Windows est en français, le séparateur décimal est la virgule et non le point. Si vous souhaitez utiliser le point comme séparateur décimal, utilisez la méthode Convert.ToDouble avec la culture invariante.

    Dim a As Double = Convert.ToDouble(TextBox2.Text, System.Globalization.CultureInfo.InvariantCulture)
    Dim b As Double = Convert.ToDouble(TextBox1.Text, System.Globalization.CultureInfo.InvariantCulture)
    
    

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
  • 2010年9月7日 6:16
     
     回答済み

    Bonjour avicene,

    Juste un petit ajout à l'excellent post de Gilles.

    Pourriez-vous jeter un coup d'oeil à ce lien ?

    http://msdn.microsoft.com/fr-fr/library/3s27fasw(v=VS.90).aspx

    Je pense qu'il devrait vous expliquer pourquoi vous obtenez une erreur d'exécution. De plus, je ne fais plus de conversion directe d'un String en variable numérique, j'utilise toujours TryParse ( suivant un vieux conseil de Gilles datant de plusieurs années ) qui permet d'utiliser la valeur de retour qui vaut true si la conversion s'est bien passée ou false si , par exemple , le format est invalide. Cela évite de déclencher une exception et d'avoir un plantage de l'application ( ce qui est particulièrement mal vu par un utilisateur lambda ). C'est un simple conseil provenant d'une personne particulièrement sensible à ce genre de détail ( en temps qu'utilisateur et concepteur de programmes ). Avec un bon traitement des exceptions et l'utilisation de méthodes telles que TryParse, on s'évite des problèmes et on fait des programmes solides. Ne vous vexez pas , il suffit d'aller sur les forums VC#,VB français ou américains pour se rendre compte que ce genre de problèmes apparait au moins 2 fois par mois, c'est peut-être aussi dû au fait que dans les livres ou les cours , bien souvent les auteurs oublient de parler de ce genre de méthodes par manque de temps ou de place.

    Bonne journée

     


    Mark Post as helpful if it provides any help.Otherwise,leave it as it is.