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 :

[VB5] Mettre une valeur sous la forme d'un chiffre avec 3 décimales


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut [VB5] Mettre une valeur sous la forme d'un chiffre avec 3 décimales
    Bonjour,

    Je développe sous Visual Basic 5.0 (SP3).

    Je travaille sur un programme qui insère des données dans un fichier txt à l'aide de la fonction Print. Ces données doivent être formatées.
    J'ai notamment une variable à affichée sous la forme d'une valeur avec 3 décimales. Ma valeur est de type Double.
    Je n'arrive pas à l'afficher sous la forme d'un float avec 3 virgules (avec . ou,)
    Exemples
    5 --> 5.000
    6,32 --> 6.320
    J'ai essayé notamment avec la fonction Format, mais ça ne fonctionne pas.

    Si quelqu'un a une idée, je suis preneur.

    Merci beaucoup

    Sylvette

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    J'avoue que je suis curieux de voir ton code avec l'instruction format, tu peux nous montrer ça ?
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Si par exemple je mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CalculTauxTmp = Format(CalculTaux, "0000.000")
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CalculTauxTmp = Format(CalculTaux, "###0.000")
    et que CalculTaux vaut 5, alors CalculTauxTmp vaut toujours 5 et non 5.000

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    Je suis un verni, alors (j'ai une meilleure machine que la tienne) !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Command1_Click()
      calcultaux = "5"
      calcultauxtmp = Format(calcultaux, "###0.000")
      Label1.Caption = calcultauxtmp
    End Sub
    Note :

    J'écrirais calcultaux = 5

    et le résultat serait toujours le même (5.000)

    Bizarre ...

    Edit : maintenant : si tu l'envoies (cette donnée) vers un champ défini en numérique et que tu relis ensuite ce champ, ma foi... v'la aut'chose !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Citation Envoyé par ucfoutu Voir le message

    Edit : maintenant : si tu l'envoies (cette donnée) vers un champ défini en numérique et que tu relis ensuite ce champ, ma foi... v'la aut'chose !
    Cousu de fil blanc. Je vote pour un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim CalculTauxTmp as Currency

  6. #6
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Je crois qu'on attend le code complet avec impatience
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  7. #7
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    Private Function CalculTaux() As Currency
     
        Dim i As Integer
        Dim temp As String, chaine_avant As String, chaine_apres As String
        Dim SommeFacture As Currency
        Dim CaObjCas As Currency
        Dim SommeCaObj As Currency
        Dim CalculTauxTmp As Currency
     
        SommeFacture = 0
        CaObjCas = 0
        SommeCaObj = 0
        CalculTauxTmp = 0
     
        If Rst1.Fields("typ_ope_lxa") = "%" Then
          CalculTaux = Rst1.Fields("mnt_lxa")
        Else
          If Rst1.Fields("typ_ope_lxa") = "F" And Rst1.Fields("cod_soc") = "00" Then
            CalculTaux = Rst1.Fields("mnt_val_lxa") * 100 / Rst1.Fields("caf_obj")
          Else
            Set Rst6 = dbsGEDEON.OpenRecordset(Requete("xxx"), dbOpenDynaset)
            CaObjCas = Rst6.Fields(0)
     
            Set Rst2 = dbsGEDEON.OpenRecordset(Requete("yyy"), dbOpenDynaset)
            If IsNull(Rst2.Fields(0)) Then
              Set Rst3 = dbsGEDEON.OpenRecordset(Requete("zzz"), dbOpenDynaset)
              If Not IsNull(Rst3.Fields(0)) Then
                SommeFacture = Rst3.Fields(0)
              Else
                SommeFacture = 0
              End If
            Else
              SommeFacture = Rst2.Fields(0)
            End If
     
            If Rst1.Fields("mnt_val_lxa") = SommeFacture Then
              Set Rst4 = dbsGEDEON.OpenRecordset(Requete("rrr"), dbOpenDynaset)
              If IsNull(Rst4.Fields(0)) Then
                Set Rst5 = dbsGEDEON.OpenRecordset(Requete("sss"), dbOpenDynaset)
                If Not IsNull(Rst5.Fields(0)) Then
                  CalculTauxTmp = Rst5.Fields(0)
                Else
                  CalculTauxTmp = 0
                End If
              Else
                CalculTauxTmp = Rst4.Fields(0)
              End If
            Else
              SommeCaObj = CaObjCas
     
              Set Rst7 = dbsGEDEON.OpenRecordset(Requete("aaa"), dbOpenDynaset)
              If Rst7.RecordCount <> 0 Then
                SommeCaObj = SommeCaObj + Rst7.Fields(0)
              End If
     
              Set Rst8 = dbsGEDEON.OpenRecordset(Requete("bbb"), dbOpenDynaset)
              If Rst8.RecordCount <> 0 Then
                SommeCaObj = SommeCaObj + Rst8.Fields(0)
              End If
     
              CalculTauxTmp = Rst1.Fields("mnt_val_lxa") * CaObjCas / SommeCaObj
     
            End If
     
            CalculTaux = CalculTauxTmp * 100 / CaObjCas
     
          End If
     
        End If
     
     
       'mes petits essais
        Print #NumFicExp, "======"
        Print #NumFicExp, CalculTaux
     
        CalculTauxTmp = Format(CalculTaux, "0000.000")
        Print #NumFicExp, "0.000"
        Print #NumFicExp, CalculTauxTmp
     
        CalculTauxTmp = Format(CalculTaux, "###0.000")
        Print #NumFicExp, "###0.000"
        Print #NumFicExp, CalculTaux
        Print #NumFicExp, "======"
     
     
     End Function

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    la fonction Format renvoi une chaîne.
    si tu mets son résultat dans une variable de type Currency ... tu perds tout ton travail de formatage....

Discussions similaires

  1. Réponses: 10
    Dernier message: 29/07/2014, 10h50
  2. Mettre une matrice sous forme d'une colonne unique
    Par mfontan dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/09/2008, 14h32
  3. Réponses: 2
    Dernier message: 21/05/2008, 11h11
  4. Réponses: 5
    Dernier message: 23/08/2005, 12h08
  5. Formater une durée sous la forme Heure:Minute:Seconde
    Par marsupile dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/01/2004, 23h29

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