Java, nombre de chiffre apres la virgule

Résolu
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   -  
 danimo -
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.
--
La vérité appartient à ceux qui la cherchent et non point à ceux qui prétendent la détenir.
(n'oubliez pas de mettre résolu si vous avez trouvé votre   bonheur: pensez aux autres^^')
Configuration: windows viste, firefox

2 réponses

  1. Bertrand40 Messages postés 1344 Statut Membre 197
     
    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
  2. danimo
     
    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