Arrotondamento dei numeri

Java:
Arrotondamento dei numeri

Come fare:

Java offre molteplici modi per arrotondare i numeri. Ecco una dimostrazione rapida con Math.round(), BigDecimal e DecimalFormat.

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

        // Utilizzando Math.round()
        long roundedNum = Math.round(num);
        System.out.println(roundedNum); // Output: 123

        // Utilizzando BigDecimal per un controllo maggiore
        BigDecimal bd = new BigDecimal(num).setScale(2, RoundingMode.HALF_UP);
        double roundedBigDecimal = bd.doubleValue();
        System.out.println(roundedBigDecimal); // Output: 123.46

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

Approfondimento

Storicamente, arrotondare i numeri è stato essenziale per i calcoli analogici ed è continuato nel calcolo digitale per efficienza e accuratezza. Gli errori di arrotondamento, come quelli derivati dall’aritmetica in virgola mobile, dimostrano che questo non è un problema banale - possono accumularsi e compromettere i calcoli in, ad esempio, applicazioni aerospaziali e finanziarie.

Oltre a Math.round(), hai a disposizione BigDecimal, che ti dà un controllo più fine sulla scala e sulla modalità di arrotondamento, e DecimalFormat per quando devi arrotondare i numeri come parte della formattazione dell’output del testo. Alternative all’arrotondamento includono l’approssimazione per difetto, l’approssimazione per eccesso e la troncatura, che sono modi diversi di gestire la precisione e solitamente gestiti da vari metodi di Math.

A seconda del tuo caso d’uso, la strategia di arrotondamento può variare. Ad esempio, BigDecimal è l’opzione preferita per i calcoli finanziari, dove la precisione è critica. Al contrario, Math.round() è un modo veloce per operazioni di uso generico dove sei meno esigente sulla modalità di arrotondamento.

Vedi anche