Index du Forum




 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Comment arrondir un nombre avec un "Pas"

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Visual Basic.Net -> Exemples de code
Sujet précédent :: Sujet suivant  
Auteur Message
Dayvid
Administrateur

Hors ligne

Inscrit le: 24 Oct 2012
Messages: 89
Localisation: Vienne - Poitiers (86000)
Masculin Lion (24juil-23aoû)
Point(s): 107
Moyenne de points: 1,20

MessagePosté le: Lun 11 Nov 2013 - 17:31    Sujet du message: Comment arrondir un nombre avec un "Pas" Répondre en citant

Salut,

Je vous propose ce code pour arrondir un nombre avec un "pas", un autre nombre, si vous préférez Clin d'œil / Conseil
Mais, ça sert à quoi ?

Parfois il peut être utile d'arrondir un nombre avec une certaine condition d'arrondissement.
C'est justement à quoi sert cette fonction d'ailleurs.

Voici le code:

Code:
Function RoundStep(ByVal Nombre As Integer, ByVal Pas As Integer) As Double

    Dim DivisionEntière As Integer = 0
    Dim Modulo As Double = 0

    DivisionEntière = Nombre \ Pas
    Modulo = Nombre Mod Pas

    If Modulo > Pas \ 2 Then
        DivisionEntière = (DivisionEntière + 1) * Pas
    Else
        DivisionEntière *= Pas
    End If

    Return DivisionEntière

End Function

Bien, imaginons un instant que j'ai un nombre, par exemple 123
Suivant la règle que vous établirez, le nombre sera arrondi au plus proche de 123 !

Ici, par exemple, je vais choisir d'arrondir ce nombre avec un "Pas" de 6, c'est à dire que je vais compter de 6 en 6 jusqu'à arriver à 123 !
Ensuite, je vais arrondir ce nombre au plus proche de 123 !
Ici le résultat sera égal à 120 !

Nombre cible = 123 !

6 * 19 = 114 !, on est trop bas !
6 * 20 = 120 !, on est au top là !
6 * 21 = 126 !, on est trop haut !

Mais à quoi ça sert de faire ça Confus

A vous de trouver une application !
Il en a pas mal d'ailleurs, je vous laisse chercher.

Voici un petit exemple pour vous donner une idée:
Code:
Module Module1

    Function RoundStep(ByVal Nombre As Int64, ByVal Pas As Integer) As Double

        Dim DivisionEntière As Int64 = 0
        Dim Modulo As Double = 0

        DivisionEntière = Nombre \ Pas
        Modulo = Nombre Mod Pas

        If Modulo > Pas \ 2 Then
            DivisionEntière = (DivisionEntière + 1) * Pas
        Else
            DivisionEntière *= Pas
        End If

        Return DivisionEntière

    End Function

    Sub Main()

        Dim Nombre As Int64 = 4294967296

        Console.WriteLine("Le nombre cible est: " & Nombre)
        Console.WriteLine()

        For i = 1 To 9
            Console.WriteLine(Nombre & " en pas de " & i & " = " & RoundStep(Nombre, i))
        Next

        Console.ReadLine()

    End Sub

End Module

N'hésitez pas à donner vos avis Clin d'œil / Conseil
_________________
Le respect n'est pas en option, mais une obligation !
Je serai intransigeant sur ce point-ci !

Veuillez s'il vous plait, aider les membres du mieux que vous le pouvez,
mais ne faites pas tout à leur place non plus, car ce n'est pas les aider !
La programmation est déjà assez difficile comme ça !


Revenir en haut
Publicité






MessagePosté le: Lun 11 Nov 2013 - 17:31    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Visual Basic.Net -> Exemples de code Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com