Arrondi en java

Fermé
Johanna - 7 janv. 2004 à 11:42
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 8 janv. 2014 à 19:49
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
A voir également:

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

Antoine
-1
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
8 janv. 2014 à 19:49
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...
0