Par exemple, j'ai la variable 3.545555555, que je voudrais tronquer à seulement 3,54.
Réponses
Trop de publicités?Si vous voulez cela à des fins d'affichage, utilisez java.text.DecimalFormat
:
new DecimalFormat("#.##").format(dblVar);
Si vous en avez besoin pour les calculs, utilisez java.lang.Math
:
Math.floor(value * 100) / 100;
Cedric Dubourg
Points
71
DecimalFormat df = new DecimalFormat(fmt);
df.setRoundingMode(RoundingMode.DOWN);
s = df.format(d);
Vérifiez les RoundingMode
et DecimalFormat
.
Mani
Points
1692
Bit Old Forum, aucune des réponses ci-dessus n'a fonctionné pour les valeurs positives et négatives (je veux dire pour le calcul et juste pour tronquer sans arrondir). Du lien Comment arrondir un nombre à n décimales en Java
private static BigDecimal truncateDecimal(double x,int numberofDecimals)
{
if ( x > 0) {
return new BigDecimal(String.valueOf(x)).setScale(numberofDecimals, BigDecimal.ROUND_FLOOR);
} else {
return new BigDecimal(String.valueOf(x)).setScale(numberofDecimals, BigDecimal.ROUND_CEILING);
}
}
Cette méthode a bien fonctionné pour moi.
System.out.println(truncateDecimal(0, 2));
System.out.println(truncateDecimal(9.62, 2));
System.out.println(truncateDecimal(9.621, 2));
System.out.println(truncateDecimal(9.629, 2));
System.out.println(truncateDecimal(9.625, 2));
System.out.println(truncateDecimal(9.999, 2));
System.out.println(truncateDecimal(-9.999, 2));
System.out.println(truncateDecimal(-9.0, 2));
Résultats :
0.00
9.62
9.62
9.62
9.62
9.99
-9.99
-9.00
Michael Borgwardt
Points
181658