Arrondi en java [Fermé]

Signaler
-
Messages postés
16101
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
14 novembre 2020
-
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

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
Utilisateur anonyme
Bonjour,
pour plus de précision, je dirais:
public double arrondi(double val) {
return (Math.floor(val*100+0.5))/100;
}
a+
ou (int)(val+0.5) puisque (int) tronque et rajouter 0.5 permet d'arrondir
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
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);
    }
}
Messages postés
16
Date d'inscription
vendredi 11 mars 2011
Statut
Webmaster
Dernière intervention
8 janvier 2014
1 240
Une astuce qui pourrait certainement vous aider sur la manière d'arrondir un nombre en Java avec ce lien.

Antoine
Messages postés
16101
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
14 novembre 2020
2 722
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...