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 nombre suivant sa valeur ?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Par défaut Arrondir un nombre suivant sa valeur ?
    Bonjour, je souhaite arrondir un nombre selon sa valeur le but c'est que le nombre de chiffre (caracteres) soit toujours de 5, pour comprendre voila des exemples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    15.1275 -> 15.128
    -4876.11 -> -4876.1
    77216.66721 -> 77217
    3      -> 3.0000                 la je met les zeros pour comprendre
    Sachant que c'est pour un programme c++, je peux donc par exemple supprimer les décimals, multiplier, diviser...

    Merci

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    C'est plus une discussion pour le forum C/C++.

    Perso, j'utiliserai les "formats" des fonctions printf/sprintf.

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (vabs>=1E4) sprintf(buffer, "%.0f", value);
    else if (vabs>=1E3) sprintf(buffer, "%.1f", value);
    else if (vabs>=1E2) sprintf(buffer, "%.2f", value);
    else if (vabs>=1E1) sprintf(buffer, "%.3f", value);
    else sprintf(buffer, "%.4f", value);

    On doit pouvoir optimiser le code en utilisant le format ".*"
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par pseudocode Voir le message

    On doit pouvoir optimiser le code en utilisant le format ".*"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf ( "%.05f", toto );

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf ( "%.05f", toto );
    Je crois que cela affiche 5 chiffres après la virgule, mais pas 5 chiffres en totalité.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Par défaut
    Bon, merci pour votre aide mais je faire autrement...
    En plus est-ce que votre methode est rapide ? Car le but était de traiter beaucoup de valeurs, enfin bref c'est bon, merci.

  6. #6
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    En fait le plus long ne sera pas forcément la conversion ou la troncature, mais toutes les tâches d'entrée sortie.

Discussions similaires

  1. Arrondir un nombre à sa valeur supérieure ou inférieure
    Par philben dans le forum Contribuez
    Réponses: 5
    Dernier message: 08/02/2013, 12h35
  2. [VB.NET] Mise en forme d'une datagrid suivant une valeur
    Par Nesmontou dans le forum ASP.NET
    Réponses: 7
    Dernier message: 17/06/2005, 11h51
  3. arrondir un nombre à 2 chiffres après la virgule
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/02/2005, 08h36
  4. select avec un nombre limité de valeurs retournées
    Par felix79 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 23/12/2004, 15h16
  5. [langage] arrondir un nombre
    Par GMI3 dans le forum Langage
    Réponses: 4
    Dernier message: 24/06/2004, 11h18

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