Java, nombre de chiffre apres la virgule [Résolu/Fermé]

Signaler
Messages postés
3255
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
-
 Utilisateur anonyme -
Bonjour,

J'affiche des entier de type double, et je voudrais les afficher avec un nombre de chiffre fixe après la virgule:

par exemple 0.800000011920929 deviendrait 0.8 et 0.22210646369331533 deviendrait 0.222106

je ne sait quelle méthode utilisé et mes recherches n'ont pour l'instant rien données.

2 réponses

Messages postés
1191
Date d'inscription
vendredi 27 mars 2009
Statut
Membre
Dernière intervention
8 avril 2017
181
Salut,

En php la syntaxe est de type :
$valeur = 0.22210646369331533;
$valeur_arrondie = round($valeur, 5)
ce qui te renvoie $valeur_arrondie = 0.22211

En java ça doit pas être bien loin de ça je pense.

Salut,

Par exemple avec cette petite méthode:

      public static double floor(double a, int decimales, double plus)
      {
         double p = Math.pow(10.0, decimales);
         //return Math.floor((a*p) + 0.5) / p; // avec arrondi éventuel (sans arrondi >>>> + 0.0
         return Math.floor((a*p) + plus) / p;
      }


Appels de la méthode:

        double plus = 0.0d;
        int decimales = 2;
        double a = 0.0d;

        //ton exemple 0.800000011920929 deviendrait 0.8   // sans arrondi:
         a = floor(0.800000011920929, decimales, plus); 
         System.out.println("a = " + a);
         
        
         //et 0.800000011920929 deviendrait 0.8 // avec arrondi éventuel:
         plus = 0.5d;
         a = floor(0.800000011920929, decimales, plus); // reste a 0.8
         System.out.println("a = " + a);
         
         
         //et ton exemple 0.22210646369331533 deviendrait 0.222106 // sans arrondi:
         plus = 0.0d;
         decimales = 6;
         a = floor(0.22210646369331533, decimales, plus); // 0.222106
         System.out.println("a = " + a);
         
         //et 0.22210646369331533 deviendrait 0.222106 // avec arrondi éventuel:
         plus = 0.5d;
         a = floor(0.22210646369331533, decimales, plus); // reste a 0.222106
         System.out.println("a = " + a);


Cordialement,

Dan