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

Langage Java Discussion :

gestion des arrondis


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut gestion des arrondis
    Bonjour,

    Je voudrais avoir une astuce pour gérer les arrondis.
    Si je ne veux garder que les deux premiers chiffres apres la virgule....

    merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Avant de poster, et de regarder la .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut
    en fait, je voudrais pour voir arrondir de façon 'intelligente'
    c'est a dire les deux décimales restantes doivent etre arrondis au plus pres :

    ex : 12.334 => 12.33
    12.336 => 12.34

    merci

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    C'est bien ce que je disais : .

    Ce problème à déjà été abordé sur le forum (et récemment en plus).
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre éprouvé Avatar de BoudBoulMan
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 100
    Par défaut
    méthode printf() de PrintStream

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    float nombre = 3.2539f
    System.out.printf("%.2f",nombre);
    Affiche:

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut
    ok merci pour ta reponse...

  7. #7
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Cette solution est juste, et peut-être qu'elle convient à niro75, mais elle a quand même l'inconvénient de se limiter à l'utilisation d'un PrintStream ou d'un PrintWriter.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut
    en fait je suis passé par une petite bidouille pour arrondir à l'unité supérieure :

    J'ai modifié mon float en String et récupéré les trois dernieres valeurs apres la virgule.
    Je fais un test sur le 3eme decimale et si >5 j'ajoute 1 au 2eme decimale.

    voila voila
    je suppose qu'il y a plus simple mais bon

  9. #9
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par niro75
    je suppose qu'il y a plus simple mais bon
    Mais bon quoi ?
    C'est si difficile que ça d'utiliser la fonction rechercher ?
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut
    non effectivement, mais c'etait une phrase de conclusion peut etre un peu malheureuse.

  11. #11
    Membre éprouvé Avatar de BoudBoulMan
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 100
    Par défaut
    Citation Envoyé par le y@m's
    Cette solution est juste, et peut-être qu'elle convient à niro75, mais elle a quand même l'inconvénient de se limiter à l'utilisation d'un PrintStream ou d'un PrintWriter.
    En effet, mais je trouve que le fait d'arrondir un nombre ne sert qu'à rendre son affichage plus commode et plus juste. Je trouve qu'il faudrait garder dans les variables la forme la plus précise du nombre pour fausser le moins possible les calculs ultérieurs.

  12. #12
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par BoudBoulMan
    En effet, mais je trouve que le fait d'arrondir un nombre ne sert qu'à rendre son affichage plus commode et plus juste. Je trouve qu'il faudrait garder dans les variables la forme la plus précise du nombre pour fausser le moins possible les calculs ultérieurs.
    Tout à fait d'accord et je n'ai jamais dit le contraire .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  13. #13
    Membre éprouvé Avatar de BoudBoulMan
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 100
    Par défaut
    Sinon, une méthode pour arrondir ton nombre est de multiplier ce nombre par 10 exposant n où n est le nombre de décimale voulue dans le chiffre arrondi. Ensuite, tu ajoute 0.5 à ce nombre et tu le tronque en le mettant sous la forme d'un int et puis tu le divise par la puissance de 10 que tu as utilisé pour le multiplier.

    Exemple, si tu veux arrondir à 2 chiffres après la virgule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    float nombre = 45.258415f;
    nombre *= 100;
    nombre += 0.5;
    int entier = (int)nombre;
    nombre = entier/100;
    Ainsi, le float nombre contient le nombre 45.26

  14. #14
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Cette méthode et non seulement inutilement compliquée, mais en plus elle va à l'encontre de ce que tu as dit dans ton post précédent .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  15. #15
    Membre éprouvé Avatar de BoudBoulMan
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 100
    Par défaut
    Citation Envoyé par le y@m's
    Cette méthode et non seulement inutilement compliquée, mais en plus elle va à l'encontre de ce que tu as dit dans ton post précédent .
    Je le sais bien mais j'ai compris ce que tu voulais dire en disant que l'on était restreint au PrintWriter (enfin je crois avoir compris ^^) et que l'on ne peut utiliser cette méthode pour l'afficher dans un JLabel par exemple.

    Donc j'essaie juste de donner une manipulation pour arrondir un nombre à n'importe quelle décimale. Ensuite, il suffit de faire un Float.valueOf(...).toString(); pour avoir l'équivalent en String et pouvoir afficher l'arrondi.

    Et en disant que c'est inutilement compliqué, connais-tu une manière plus simple de faire (sans utiliser printf bien sûr) ?

  16. #16
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par BoudBoulMan
    Et en disant que c'est inutilement compliqué, connais-tu une manière plus simple de faire (sans utiliser printf bien sûr) ?
    La réponse se trouve dans mes deux premiers posts .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  17. #17
    Membre éprouvé Avatar de BoudBoulMan
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 100
    Par défaut
    Hmmm... en effet

    Bon, alors après des recherches, je conclus que la meilleure façon de procéder est d'utiliser la classe DecimalFormat tout simplement

  18. #18
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par BoudBoulMan
    Exemple, si tu veux arrondir à 2 chiffres après la virgule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    float nombre = 45.258415f;
    nombre *= 100;
    nombre += 0.5;
    int entier = (int)nombre;
    nombre = entier/100;
    Ainsi, le float nombre contient le nombre 45.26
    Oui, a priori cette méthode semble séduisante.. sauf si le float dépasse 2 147 483 647,47
    D'ailleurs que dit la spec Java dans ce cas ? la conversion float -> int est-elle effectuée modulo 2^32 ?

  19. #19
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par BoudBoulMan
    Bon, alors après des recherches, je conclus que la meilleure façon de procéder est d'utiliser la classe DecimalFormat tout simplement
    Ah enfin, Je commençais à désespérer .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

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

Discussions similaires

  1. gestion des arrondis
    Par Adonis96 dans le forum C
    Réponses: 2
    Dernier message: 31/08/2014, 10h44
  2. Réponses: 4
    Dernier message: 25/11/2013, 18h54
  3. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 13h44
  4. Réponses: 4
    Dernier message: 04/07/2002, 13h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 15h11

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