Tronquer à deux décimales un double Java

Fermé
dansote - 11 oct. 2008 à 15:45
 NiS - 25 avril 2010 à 23:37
Bonjour,
Je souhaiterais tronquer un double par exple: 0.45657 à 0.45
Merci
A voir également:

2 réponses

Utilisateur anonyme
11 oct. 2008 à 18:56
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
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