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

Algorithmes et structures de données Discussion :

Arrondir un réel à x


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 763
    Par défaut Arrondir un réel à x
    bonjour,

    j'ai un entier entre 0.0 et 99.99 que je voudrais arrondir à x (x étant un réel qui est la plus part du temps un multiple de 0.25 : 0.25, 0.5 ou 0.75)
    Exp :
    x = 0.25
    arrondir 9.23 à x => obtenir 9.25

    merci

  2. #2
    c@c
    c@c est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 39
    Par défaut
    Une méthode (il y a sans doute mieux ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    0. "Partie entière" = Partie entière du "nombre réel"
    1. "Partie décimale" = "Nombre réel" - "Partie entière" 
    2. "Partie décimale" = "Partie décimale" * (1/0.25=4) + 0.5
    3. Conversion "Partie décimale" en entier 					// On récupère la partie entière
    4. Reconversion en réel  									// Résultat : ça a tronqué le nombre
    5. division "Partie décimale" par (1/0.25=4)
    6. "Nombre arrondi" = "Partie décimale" + Conversion "Partie entière" en réel
    Un rapide exemple en C++ (le code est moche, je l'ai fait à la va-vite) :
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <iostream>
    using namespace std;
     
    int main(){
     
    float fdepart;
    cin >> fdepart;
    int ientier = (int) fdepart;
    fdepart = fdepart - ientier;
    fdepart = fdepart*4 +0.5;
    fdepart = ((float) (int) fdepart) / 4 + ientier;
    cout << fdepart << endl;
     
    	return EXIT_SUCCESS;
    }

  3. #3
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    bien le bonjour,

    je suis pas sur d'avoir bien compris mais je propose ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    d=nombre mod 1
    si |d-x| < 0.5 Alors retourner nombre-d+x
    sinon si (d-x < 0 ) Alors retourner nombre-d-1+x
              sinon retourner nombre-d+1+x
            finsi
    finsi

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2003
    Messages : 88
    Par défaut
    http://www.developpez.net/forums/viewtopic.php?t=175994

    Lisez la liste de tous les forums pour bien choisir, postez votre message dans un seul forum (Le Multipost est interdit)
    @++

    R@f

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Pour arrondir N à x près :

  6. #6
    Membre éclairé Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 763
    Par défaut
    Citation Envoyé par raf_gug
    http://www.developpez.net/forums/viewtopic.php?t=175994

    Lisez la liste de tous les forums pour bien choisir, postez votre message dans un seul forum (Le Multipost est interdit)
    @++

    R@f
    je ne savais pas que c'été interdit...mais je voulais absolument avoir plusieurs réponses dsl

  7. #7
    Membre éclairé Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 763
    Par défaut
    Citation Envoyé par pgibone
    Pour arrondir N à x près :
    YEAHHHHHHHHH...ça marche 8) MERCI
    qq exemples :
    arrondi de 0.83 à 0.1 près = 0.8
    arrondi de 0.86 à 0.1 près = 0.9
    arrondi de 0.73 à 0.25 près = 0.75
    arrondi de 0.94 à 0.25 près = 1

  8. #8
    Nouveau candidat au Club
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Par défaut la formule
    la solution est :
    [ent(2*n/x)-ent(n/x)]*x

    tester et comparer et dite merci

  9. #9
    Nouveau candidat au Club
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Par défaut commentaire
    ent : partie entière plus connue mathématiquement
    round : fonction d'arrondi à l'entier le plus proche est peu connue, malgré qu'elle existe informatiquement.

  10. #10
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    arrondir 9.23 à x => obtenir 9.25
    1. Tu divises par 0.25 et tu trouves 36.92
    2. Tu arrondis à l'unité (fonction Round), ce qui te donne 37.00
    3. Tu multiplies par 0.25 et tu trouves 9.25


    Jean-Marc Blanc

  11. #11
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    une solutions très rapide en C :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    double x = ??? ;
    double y = (int)(x * 4.0 + 0.5) / 4.0 ;
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

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

Discussions similaires

  1. VESA - Mode réel / protégé / EMS-XMS
    Par zdra dans le forum x86 16-bits
    Réponses: 35
    Dernier message: 21/08/2010, 10h39
  2. ne pas arrondir un réel ?
    Par sandokhane dans le forum Débuter
    Réponses: 5
    Dernier message: 21/03/2009, 13h48
  3. Arrondir un réel en entier
    Par houred dans le forum Débuter
    Réponses: 8
    Dernier message: 29/06/2008, 19h09
  4. Réponses: 8
    Dernier message: 13/01/2003, 17h45
  5. [MaskEditBox] Affecter avec un réel
    Par fikou dans le forum Général VBA
    Réponses: 6
    Dernier message: 16/09/2002, 09h28

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