Tronquer à deux décimales un double Java

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

2 réponses

  1. 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. 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