Arrondir les nombres

Java:
Arrondir les nombres

Comment faire :

Java offre plusieurs manières d’arrondir les nombres. Voici une démo rapide avec Math.round(), BigDecimal et DecimalFormat.

public class RoundingDemo {
    public static void main(String[] args) {
        double num = 123.4567;

        // Utilisation de Math.round()
        long roundedNum = Math.round(num);
        System.out.println(roundedNum); // Sortie : 123

        // Utilisation de BigDecimal pour plus de contrôle
        BigDecimal bd = new BigDecimal(num).setScale(2, RoundingMode.HALF_UP);
        double roundedBigDecimal = bd.doubleValue();
        System.out.println(roundedBigDecimal); // Sortie : 123.46

        // Utilisation de DecimalFormat
        DecimalFormat df = new DecimalFormat("#.##");
        String formattedNum = df.format(num);
        System.out.println(formattedNum); // Sortie : 123.46
    }
}

Approfondissement

Historiquement, l’arrondissement des nombres a été essentiel pour les calculs analogiques et s’est transmis à l’informatique numérique pour l’efficacité et la précision. Les erreurs d’arrondi, comme celles issues de l’arithmétique en virgule flottante, démontrent que ce n’est pas un problème trivial – elles peuvent accumuler et perturber les calculs dans, disons, l’aérospatiale et les applications financières.

Au-delà de Math.round(), vous avez BigDecimal, qui vous donne un contrôle plus fin sur l’échelle et le mode d’arrondissement, et DecimalFormat pour quand vous avez besoin d’arrondir les nombres dans le cadre de la mise en forme de la sortie texte. Les alternatives à l’arrondissement incluent l’abaissement, le plafonnement, et la troncature, qui sont différentes manières de gérer la précision et sont généralement gérées par diverses méthodes de Math.

Selon votre cas d’utilisation, la stratégie d’arrondissement peut varier. Par exemple, BigDecimal est privilégié pour les calculs financiers, où la précision est critique. En contraste, Math.round() est une manière rapide pour des opérations à but général où vous êtes moins pointilleux sur le mode d’arrondissement.

Voir Aussi