Tronquer à deux décimales un double Java

dansote -  
 NiS -
Bonjour,
Je souhaiterais tronquer un double par exple: 0.45657 à 0.45
Merci
Configuration: Windows XP

2 réponses

  1. danimo
     
    Bonjour,

    // avec arrondi:
    double dnombre = 0.45657;
    String masque = new String("#0.##");
    DecimalFormat form = new DecimalFormat(masque); // import java.text.DecimalFormat;
    System.out.println("dnombre: " + form.format(dnombre));

    // sans arrondi (tronqué):
    // par exemple
    String Snombre = Double.toString(dnombre); // a partir de java 1.4
    System.out.println("Snombre: " + Snombre);
    int index = Snombre.indexOf(".");
    if (index != -1)
    {
    String SnombreTronque = Snombre.substring(0, index +3);
    System.out.println("Snombre tronqué: " + SnombreTronque + " (String)");
    double result = Double.parseDouble(SnombreTronque); // a partir de java 1.4
    System.out.println("Resultat: " + result +" (double)");
    }
    else
    System.out.println("Pas de .");
    // ne pas oublier de gerer les exceptions

    Cordialement

    Dan
    1
  2. NiS
     
    final public String formatDouble(double val, int nb) {
    String s = ""+val;
    final int idx = s.indexOf('.');
    if (idx != -1 && idx < s.length() - nb)
    s = s.substring(0, idx + nb+(nb==0 ? 0 : 1));
    return s;
    }
    -1