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

VB.NET Discussion :

problème de conversion text en single [Débutant]


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 139
    Par défaut problème de conversion text en single
    Bonjour tout le monde,

    Heihei, je pose directement la question:

    Dans mon interface, je demande l'utilisateur d'entrer des valeurs qui

    peuvent être 1,56, ou bien -1,56 par exemple. Ensuite, je dois traiter ces

    valeurs. Le problème est de: Comment convertir ces valeurs de format "text"

    en format single ? Je sais pour une valeur "entier", il y a convert.ToInt..

    Merci d'avance pour votre participation

  2. #2
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Bonjour xingjing910,

    Je viens de trouver ce lien: Liste des conversions

    Du coup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            Dim txt As String = "-1.95"
            Dim v = Val(txt) 'A la base ca retourne un type Double..
            Dim v2 As Single = Val(txt) 'Ca fonctionne aussi...

  3. #3
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    @-N4w4k- : Ta méthode est à ne pas faire...

    Il faut autant que possible éviter d'utiliser les fonctions venant du vb6 et utiliser les fonctions proposées par le framework .Net.

    Pour convertir un string en Single, comme le montre MSDN, il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim tonSingle as Single = Single.Parse("1,98")
    Attention, car cette méthode ne supporte pas tous les formats de chaine de caractère pour les convertir en nombre.

    Tu peux cependant le feinter en faisant un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim taString as String = "1.95"
    Dim tonSingle as Single = Single.Parse(taString.Replace(".",","))
    Ou tu peux utiliser les IFormatProvider comme dans l'exemple du lien donner précédemment.

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 139
    Par défaut
    Citation Envoyé par -N4w4k- Voir le message
    Bonjour xingjing910,

    Je viens de trouver ce lien: Liste des conversions

    Du coup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            Dim txt As String = "-1.95"
            Dim v = Val(txt) 'A la base ca retourne un type Double..
            Dim v2 As Single = Val(txt) 'Ca fonctionne aussi...
    Bonjour N4w4k,

    Merci beaucoup pour ta réponse. Je viens de trouver aussi sur internet :


    'Convertir les textes saisis en single

    ' et les mettre dans les variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sTaille = CType(TextBoxTaille.Text, Single) / 100
     
    sPoids = CType(TextBoxPoids.Text, Single)
    plus de détaille, voir le site : http://plasserre.developpez.com/cour...ge=procedurale

    Bonne journée

  5. #5
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Bonjour Gurdil,

    C'est vrai que le lien que j'ai donné est dans la rubrique "VB 2005" de msdn..
    mais en continuant de cliquer on arrive sur la page Conversion.Val, méthode (String) et cela indique :
    Informations de version
    .NET Framework
    Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0
    .NET Framework Client Profile
    Pris en charge dans : 4, 3.5 SP1
    La fonction à l'air d'être "proposée" par le .NET framework, non ?

    Même si ce n'est pas la solution que xingjing910 retiendra, ça m’intéresserais de savoir pourquoi ne pas l'utiliser par la suite maintenant que je connais cette méthode..

  6. #6
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Salut
    comme dit Gurdil si on code en net eviter les fonctions vb6
    decocher la réference visual basic de la liste des réferences
    ce qui forcera à coder avec les fonctions du framework seulement

  7. #7
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Bonjour,

    Val (de même que beaucoup d'autres) existent certes dans le framework, mais ne sont là que pour des raisons (historiques) de compatibilité avec les anciens programmes VB6

    Aux origines de VB.Net les programmeurs VB6 n'allaient pas tout se refaire, MS a donc pensé à eux en incluant ces méthodes dans un pseudo modèle objet (des Modules contenant ces fonctions et marqués d'un attribut permettant de ne pas avoir à spécifier ce nom de module comme si l'on appelait ces fonctions sans classe) afin de ne pas briser la compatibilité de ces programmes.

    Mais il faut bien comprendre, qu'à part dans ce but, ces fonctions n'ont pas de réel autre intérêt, (pas testé) mais possiblement moins performantes, c'est la raison pour laquelle il est fortement conseillé d'éviter de s'en servir pour une nouvelle production (d'ailleurs elles ne sont pas disponibles par défaut dans C# étant donné que le souci de compatibilité ascendante ne s'y présentait pas).

    Cordialement !

  8. #8
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Merci pour ta réponse Sehnsucht,

    J'ai bien compris pourquoi il ne fallait pas utiliser ces fonctions mais du coup, comment savoir lesquelles sont à éviter?
    Celles présentent dans l'espace de noms Microsoft.VisualBasic?

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    Citation Envoyé par Sehnsucht Voir le message
    Mais il faut bien comprendre, qu'à part dans ce but, ces fonctions n'ont pas de réel autre intérêt, (pas testé) mais possiblement moins performantes, c'est la raison pour laquelle il est fortement conseillé d'éviter de s'en servir pour une nouvelle production (d'ailleurs elles ne sont pas disponibles par défaut dans C# étant donné que le souci de compatibilité ascendante ne s'y présentait pas).
    elles pointent vers les méthodes du modèle objet de .net, je n'ai pas regardé pour val précisément mais c'était le cas pour les autres que j'ai passé sous reflector, val doit pointer vers convert.todouble

    après si on peut éviter de les utiliser c'est pas plus mal, bien que je ne sache pas dire pourquoi moi aussi je pense ca
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 139
    Par défaut
    Coucou tout le monde,

    Merci bien de votre participation. Je viens de trouver aussi la fonction : Convert.ToSingle. Je trouve que c'est simple non ? mais je ne sais pas s'il y a un problème ou bien plutôt inconvénient ?

    Merci d'avance

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

Discussions similaires

  1. [AC-2010] Problème de conversion d'une chaine de texte en format date.
    Par Axe_Débutant dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/01/2015, 03h29
  2. Problème conversion texte en numérique avec SQL
    Par acquistapace dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/01/2013, 09h31
  3. [Flash Mx] Problème de contour texte
    Par tahiti bob dans le forum Flash
    Réponses: 13
    Dernier message: 12/03/2004, 13h52
  4. Problème avec fichier texte
    Par jpdelx dans le forum ASP
    Réponses: 7
    Dernier message: 13/11/2003, 13h17
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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