Java, nombre de chiffre apres la virgule

Résolu/Fermé
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 - 19 janv. 2010 à 11:33
 Utilisateur anonyme - 19 janv. 2010 à 20:43
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.
A voir également:

2 réponses

Bertrand40 Messages postés 1193 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 192
19 janv. 2010 à 11:47
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.
-1
Utilisateur anonyme
19 janv. 2010 à 20:43
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
-1