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.
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.
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
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
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
méthode printf() de PrintStream
Affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 float nombre = 3.2539f System.out.printf("%.2f",nombre);
Code : Sélectionner tout - Visualiser dans une fenêtre à part 3.25
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
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
Mais bon quoi ?Envoyé par niro75
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
non effectivement, mais c'etait une phrase de conclusion peut etre un peu malheureuse.
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.Envoyé par le y@m's
Tout à fait d'accord et je n'ai jamais dit le contraireEnvoyé par BoudBoulMan
.
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
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:
Ainsi, le float nombre contient le nombre 45.26
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;
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
Je le sais bienEnvoyé par le y@m's
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) ?
La réponse se trouve dans mes deux premiers postsEnvoyé par BoudBoulMan
.
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
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![]()
Oui, a priori cette méthode semble séduisante.. sauf si le float dépasse 2 147 483 647,47Envoyé par BoudBoulMan
![]()
D'ailleurs que dit la spec Java dans ce cas ? la conversion float -> int est-elle effectuée modulo 2^32 ?
Ah enfin, Je commençais à désespérerEnvoyé par BoudBoulMan
.
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
Partager