IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Conversion de String en Double


Sujet :

Windows Forms

Vue hybride

JB-Tech [VB.NET] Conversion de String... 24/10/2006, 13h35
Mehdi Feki Dim d1 As Double Dim... 24/10/2006, 14h53
JB-Tech Aucune de ces méthodes... 24/10/2006, 15h17
ekinox17 C'est normal chose que je... 24/10/2006, 15h46
JB-Tech Ça fonctionne merci !!! ... 24/10/2006, 16h10
nathir @ Mehdi Feki 26/02/2018, 07h32
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut [VB.NET] Conversion de String en Double
    J'ai de la dificulté à convertir des strings en double.

    Ex:
    Dim d as double

    ' J'ai esseyé les fonctions suivant et ça ne fonctionne pas...

    d = CDbl("1.20")

    d = CStr("1.20")

    d = Convert.ToDouble("1.20")

    Quelqu'un a une solution ?

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Code Vb.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            Dim d1 As Double
            Dim d2 As Double
            Dim d3 As Double
            Dim d4 As Double
            Dim d5 As Double
     
            Dim ImputString As String = "1.20"
     
            d1 = CDbl(ImputString)
            d2 = ImputString
            d3 = Convert.ToDouble(ImputString)
            Double.TryParse(ImputString, d4)
            d5 = Double.Parse(ImputString)

    Quel genre d'exception as-tu ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut
    Aucune de ces méthodes fonctionnent...
    J'obtiens un:

    "InvalidCastException was unhandled: Conversion from string "1.20" to type 'Double' is not valid."

    et pour d3 & d5 j'obtiens un:
    "Input string was not in a correct format"


  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par défaut
    C'est normal chose que je n'explique pas mais qui m'as posé de grave problème la nuit pour dormir le parseur de double ne considère pas le point comme un séparateur decimal mais il utilise la VIRGULE.

    Code Vb.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim d1 As Double
            Dim d2 As Double
            Dim d3 As Double
            Dim d4 As Double
            Dim d5 As Double
     
            Dim ImputString As String = "1,20"
     
            d1 = CDbl(ImputString)
            d2 = ImputString
            d3 = Convert.ToDouble(ImputString)
            Double.TryParse(ImputString, d4)
            d5 = Double.Parse(ImputString)

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut
    Ça fonctionne merci !!!

    C'est que Windows en français utilise la virgule par defaut comme symbole séparateur de décimal, tandis que Windows en anglais utilise le point.

    On peut utiliser le point comme séparateur avec Windows français en changeant le symbole décimal dans les "Options régionales et linguistiques".

    Ce qui m'inquiète c'est que VB voit une différence entre le point et la virgule, ce qui risque de causer des problèmes de compatibilité lorsque l'on exécute un programme développé en VB sur un Windows en français et sur un Windows en anglais.

    Merci pour la solution !!

  6. #6
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    +1 pour ekinox17,

    sinon tu peux modifier le format de la separation à l'aide de NumberDecimalSeparator

    Code Vb.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim ciClone As CultureInfo = CType(CultureInfo.InvariantCulture.Clone(), CultureInfo)
    ciClone.NumberFormat.NumberDecimalSeparator = "."
     
    Dim ImputString As String = "1.20"
    d3 = Convert.ToDouble(ImputString, ciClone)
    d5 = Double.Parse(ImputString, ciClone)

  7. #7
    Invité de passage
    Inscrit en
    Décembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 1
    Par défaut @ Mehdi Feki
    dsl j'ai pas encore compris
    pouvez vous m'expliquer encore comment faire?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. bête conversion de string en double
    Par lucky dans le forum MFC
    Réponses: 10
    Dernier message: 12/02/2014, 08h01
  2. Conversion de string en double
    Par etendard7 dans le forum C++
    Réponses: 4
    Dernier message: 05/04/2012, 17h45
  3. Réponses: 23
    Dernier message: 09/09/2010, 13h11
  4. [C++.Net] Conversion de String en char
    Par tunisienne84 dans le forum MFC
    Réponses: 3
    Dernier message: 27/04/2006, 16h41
  5. conversion string en double
    Par zmatz dans le forum SL & STL
    Réponses: 2
    Dernier message: 14/10/2005, 22h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo