Arrondi en java

Bonjour,
Je souhaiterai arraondir un nombre de type "double" qui a un dizaine de chiffres après la virgule afin qu'il n'en est plus que 2 au maximum.
J'ai trouvé la fonction round mais cela provoque une erreur à la compilation "double cannot be dereferenced".
(J'utilise Java 1.4.1.)
Si vous pouviez m'aider
Merci par avance

4 réponses

  1. Salut,
    voilà qui pourrait t'aider

    // Methode arrondi
    //--------------
    // Renvoie un reel avec 2 chiffres apres la virgule
    public double arrondi(double val) {return (Math.floor(val*100.0))/100;}

    Bon java
    puce
    1. Bonjour,
      pour plus de précision, je dirais:
      public double arrondi(double val) {
      return (Math.floor(val*100+0.5))/100;
      }
      a+
    2. ou (int)(val+0.5) puisque (int) tronque et rajouter 0.5 permet d'arrondir
  2. static public double arrondir(double value, int n) {
    double r = (Math.round(value * Math.pow(10, n))) / (Math.pow(10, n));
    return r;
    }

    static public Double arrondir(Double value, int n) {
    double r = (Math.round(value.doubleValue() * Math.pow(10, n))) / (Math.pow(10, n));
    return new Double(r);
    }

    ==>Exemple d'utilisation : arrondir(new Double(0.004),2) ;//arrondi à la 2eme décimale
    1. empêche des erreurs

      public class RoundTest
      {   
          public static void main(String[] args)
          {
              double num = myRound(15.6666666, 2);
              System.out.println( num ); //it’s a double
              
              String str = myRound(15.6666666, "0.00");
              System.out.println( str ); //it’s a String
          }
          
          private static double myRound(double value, int decimalPlaces)
          {
              if(decimalPlaces < 0) { return value; }
              double augmentation = Math.pow(10, decimalPlaces);
              return Math.round(value * augmentation) / augmentation;
          }
          
          private static String myRound(double value, String format)
          {
              if(format == null  ||  format.length() <= 0) { return String.valueOf(value); }
              return new DecimalFormat(format).format(value);
          }
      }
      
      1. Webmaster
        Une astuce qui pourrait certainement vous aider sur la manière d'arrondir un nombre en Java avec ce lien.

        Antoine
        1. Modérateur
          Tu n'as pas l'impression d'arriver avec 10 ans de retard ?

          La question : "J'utilise Java 1.4.1."

          Ton astuce : "Si vous utilisez une version de Java antérieure à la 1.6, cette technique ne fonctionnera pas"

          En plus de cela ce n'est pas la meilleure manière d'obtenir un arrondi en Java !
          En Java 1.5 et plus :
          System.out.printf("%.2f",1.23456789); // 1.23

          Si le but était de mettre en valeur les articles du JDN, c'est un coup d'épée dans l'eau...