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 6 et antérieur Discussion :

calcul nombres decimaux dans un label


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut calcul nombres decimaux dans un label
    Bonjour,

    Alors voila, j'ai une base de donnée Access 97 avec des prix etc et dans ma form je fais une requête pour afficher un prix dans un label. A coté de ce label, j'ai une textbox dans laquelle je définis combien de fois je veux le prix (c'est un logiciel de réservation de place).
    La logique voudrais que je déclare une variable "place1" de type double où je stockerai le calcul Place1 =val(label) * val(textbox)
    Le problème c'est que quand j'ai un prix sous forme décimal ( 7,5 par exemple), je fais => Place1 = 7,5 * 2
    Au lieu de m'afficher 15 il m'affiche 14 comme si c’était 7 * 2

    Dois-je faire un réglage spécial? Sachant que dans ma bdd, le type de mes champs sont numérique et de type réel double

    Merci pour votre aide,

    J’espère qu'un sujet similaire n'as pas déjà été traité, j'avoue que je n'ai pas eu le temps de rechercher dans le forum

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 079
    Points : 16 968
    Points
    16 968
    Par défaut
    Salut
    Tu as un problème de séparateur décimal.
    Essais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Private Sub Form_Load()
    Dim Don1 As String, Don2 As String
    Dim Msg As String
     
    Don1 = "7.5": Don2 = "2"
    Msg = "L'operation: " & CStr(Don1) & " * " & CStr(Don2) & vbCrLf _
            & "Val(Don1) * Val(Don2)  =" & Val(Don1) * Val(Don2) _
            & vbCrLf & "Bon"
    MsgBox Msg, vbInformation
     
    Don1 = "7,5"
    Msg = "L'operation: " & CStr(Don1) & " * " & CStr(Don2) & vbCrLf _
            & "Val(Don1) * Val(Don2)  =" & Val(Don1) * Val(Don2) & vbCrLf _
            & "Pas bon"
    MsgBox Msg, vbInformation
     
    Msg = "L'operation: " & CStr(Don1) & " * " & CStr(Don2) & vbCrLf _
            & "Csng(Don1) * Val(Don2)  =" & CSng(Don1) * Val(Don2) & vbCrLf _
            & "Bon"
    MsgBox Msg, vbInformation
     
    End Sub
    Les variables ont été déclarées en String car tes calculs sont basés sur un Label et un TextBox qui renvoient un littéral, non un numérique.

    le calcul Place1 =val(label) * val(textbox) modifies le en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Place1 = CSng(Label.Caption) * CSng(TextBox.Text)
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    donc si je comprend bien, il suffit juste de remplacer mon exemple par :
    Place1 = CSng(Label.Caption) * CSng(TextBox.Text)
    pour que mon calcul (place1) soit juste?

  4. #4
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 079
    Points : 16 968
    Points
    16 968
    Par défaut
    Oui, mais si tu dois déployer sur différents ordinateur, il faudra peut être vérifier (par code) le séparateur utilisé sur chacun et agir en conséquence.
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Donc une fois que mon projet sera fini, si je le déploie avec le setup, ça marchera pas partout? Enfin cette partie avec le calcul?

  6. #6
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 079
    Points : 16 968
    Points
    16 968
    Par défaut
    Il me semblait bien
    Regardes ce Post Addition de textbox, c'est la solution pour un déploiement sur des ordinateurs avec séparateur décimaux différent.
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Salut,

    Donc le code du post je dois le mettre dans ma form et quand je déploierai mon projet, je pourrai l'installer sur tous types de pc?

  8. #8
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut
    Bonjour,

    L'instruction VAL ne reconnaît comme séparateur décimal que le point.La virgule étant considéré comme caractère alphanumérique,la lecture du nombre s'arrête à la virgule.

    Une autre solution qui convient pour tout consiste à utiliser l'instruction Replace pour remplacer la virgule par un point.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    label = replace(label,",",".")
    textbox=replace(textbox,",",".")
    Place1 =val(label) * val(textbox)
    ce qui donne la réponse correcte.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    D'accord, je vais plutôt faire comme ça

    Merci beaucoup

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

Discussions similaires

  1. [XL-2010] Calculer nombre dates dans une colonne.
    Par Bloubee dans le forum Excel
    Réponses: 2
    Dernier message: 29/05/2013, 16h56
  2. Générer nombre aléatoire dans un label
    Par Remus91 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/03/2009, 02h32
  3. calcule somme des textbox dans un label
    Par hich24 dans le forum Général VBA
    Réponses: 5
    Dernier message: 07/02/2008, 14h55
  4. calcul le nombre 0 dans la representation binaire de n
    Par kojima dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 16/04/2007, 23h40
  5. ecrire des nombres decimaux dans EDIT Control
    Par craryb dans le forum MFC
    Réponses: 1
    Dernier message: 22/03/2007, 19h28

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