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

Vos contributions VB6 Discussion :

[Source] Comment arrondir un nombre avec une précision variable


Sujet :

Vos contributions VB6

  1. #1
    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 [Source] Comment arrondir un nombre avec une précision variable
    Voila une petite fonction qui vous permettra d'arrondir avec une précision variable (de 0 à 1) tout nombre positif ou négatif.
    Cet exemple nécessite de créer une forme contenant 3 controles text. Dans le premier controle, l'utilisateur doit entrer le nombre à arrondir, dans le second l'arrondi voulu, le troisieme controle texte affiche le nombre d'origine arrondi.
    Je n'ai pas écrit de code pour vérifier la validité des nombres entrés dans les zones Text1 et Text2.

    En espérant que ce code puisse être utile à quelqu'un...

    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
     
    Option Explicit
     
    Private Sub Command1_Click()
    Text3 = Arrondir(Text1, Text2)
     
    End Sub
     
    '------------------------------------------------------------------------------------
    'Arrondi d'un nombre quelconque, positif ou négatif avec valeur d'arrondi quelconque
    'Entrée :
    '   ValIn   : Nombre à arrondir
    '   Arrondi : Arrondi
    'Sortie :
    '   Arrondir : Valeur arrondie
    '------------------------------------------------------------------------------------
    Public Function Arrondir(ValIn As Double, Arrondi As Double) As Double
    Dim Entier        As Long         'Partie entière du nombre à arrondir
    Dim Reste         As Double       'Différence entre partie entière et nombre à arrondir
    Dim i             As Integer      'Pour boucle
     
    'Cas d'exclusion
    If Arrondi > 1 Then
      MsgBox "La valeur d'arrondi doit être inférieure ou égal à 1", vbExclamation, "Erreur"
      Arrondir = 0
      Exit Function
    End If
     
    If ValIn = 0 Then
      Arrondir = 0
      Exit Function
    End If
     
    Entier = Fix(ValIn)
    Reste = Abs(ValIn - Entier)
     
    Do
      i = i + 1
      If Reste - (i * Arrondi) <= Arrondi / 2 Then Exit Do
    Loop
    Arrondir = IIf(ValIn > 0, Entier + i * Arrondi, Entier - i * Arrondi)
    End Function
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    déjà il y a une erreur de type dans l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text3 = Arrondir(CDbl(Text1), CDbl(Text2))
    et quel intêret par rapport à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Command2_Click()
        Text4.Text = Round(CDbl(Text1.Text), CLng(Text2.Text)) '-- text2 contient alors le nombre de décimales
    End Sub
    sauf si j'ai raté un truc ...
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  3. #3
    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
    Alors, tout d'abord j'ai mis ça ici presque contraint et forcé mais j'y tenais pas plus que ça, au départ c'était simplement pour répondre à une question du forum, d'où le manque de vérif sur Text1 et Text2.

    Mais effectivement, il ne s'agit pas d'arrondir un nombre en fonction du nombres de décimales mais par rapport à .... je sais pas comment dire alors je vais te donner un exemple :

    Arrondir 1.74 à 0.25 près, ça donne 1.75
    Arrondir 1.74 à 0.33 près, ça donne 1.66
    Etc....

    voilà à quoi sert ce petit truc, rien de plus
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

Discussions similaires

  1. Implémentation d'une division entre nombres entiers avec une précision arbitraire
    Par i.Polo dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 28/05/2015, 10h51
  2. Réponses: 3
    Dernier message: 06/05/2009, 16h27
  3. comment remplir 2 champs avec une seule listbox
    Par Didi17 dans le forum Access
    Réponses: 3
    Dernier message: 19/10/2005, 09h42
  4. [DOM XML] Comment parser du XML avec une version 4.3 ?
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 18/10/2005, 15h52
  5. comment faire un sphère avec une texture ?
    Par fregate dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/09/2005, 03h37

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