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 :

comparaison valeur list view nombre virgule


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Par défaut comparaison valeur list view nombre virgule


    mon probleme de ce matin

    par exemple ,j'ai une listview qui contient des valeurs telles quelles :
    0.50
    1
    1.50
    2
    2.20
    5.12
    ect ect

    à l'aide d'un évenement d'un bouton "ajouter" , j'insère une autre valeur que j'ai écris dans un "textbox" comme par exemple 3 -->> jusque là ça marche !

    mais mon soucis concerne les nombres à virgules , en effet lorsque j'inscris 1.5dans ma textbox , je la compare avec les valeurs contenues dans la listview ...

    dans mon cas : je compare 1.5 et logiquement je devrais avoir un message me disant que "ce chiffre est déjà dans la listeview"
    puisqu'en effet 1.5 = 1.50
    mais cela me l'insére quand meme !!! alors que je ne le souhaite pas ! car pour avoir mon message je dois inscrire 1.50 mais le soucis c'est que l'utilisateur de mon programme ne va pas penser à mettre 1.50 dans la texte box , c 'est à moi de gérer cela !!

    quelqu'un peut-il m'aider ?!

  2. #2
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Plusieurs solutions :
    - Soit tu fais une pre-comparaison au format numerique de tes valeurs par rapport à ta nouvelle.
    - Soit tu utilises la commande format avant l'insertion en specifiant 2 chiffres apres la virgule (#.00)

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Dim valeur As Integer = Txt_Ajout_valeur.Text
            cmd.Connection = conn
            Dim existe As Boolean = False
            Try
                For i As Integer = 0 To (Me.Listview.Items.Count - 1)
                    If (valeur= (Listview.Items(i).SubItems(1).Text)) Then
                        existe = True
                    End If
                Next i
                If existe = True Then
                    MsgBox("La valeur existe déjà", MsgBoxStyle.Exclamation)
    désolé je sais pas utiliser le format (#.00)

  4. #4
    Membre expérimenté Avatar de Faladin
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 333
    Par défaut
    à ta place j'obterais pour la première solution de Danyel, le problème c'Est que dans ta listview, c'est des strings, et en comparaison de string, chaques caratères comptent!

    Donc effectivement 1.5 != 1.50

    Si tu fais une comparaison en castant tes valeurs en nombre, ça va fonctionner à ce moment...quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim trouver as boolean = False
    For each Value in ListView.Items
    if cdbl(Value) = cdbl(Textbox.text) then
    trouver = True
    Exit For
    end if
    next
     
    if trouver then
    'Ne pas ajouter la valeur
    else
    'ajouter la valeur
    end if

  5. #5
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Par défaut
    merci pour l'aide

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/05/2014, 14h38
  2. Réponses: 7
    Dernier message: 14/06/2010, 15h25
  3. Comparaison de deux nombres à virgule
    Par TangoZoulou dans le forum Langage
    Réponses: 6
    Dernier message: 07/06/2009, 23h06
  4. Réponses: 1
    Dernier message: 05/06/2009, 18h59
  5. prendre la valeur entière ou décimal d'un nombre à virgule
    Par svaxs005 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/05/2007, 15h22

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