Arrotondare double in Java con Apache Commons Math

Mattepuffo's logo
Arrotondare double in Java con Apache Commons Math

Arrotondare double in Java con Apache Commons Math

Non capisco perchè a volte non si trova quello che si cerca anche se la richiesta è molto semplice.

In Java ho bisogno di arrotondare un double a due decimali.

Quindi devo arrotondare questo a due decimali: 8521.6641263.

In giro ho trovato le soluzioni più disparate, di cui molte mi facevano convertire il double in String.

Ma perchè??? Io poi lo devo usare quel numero!

La soluzione mi è arrivata, come spesso accade, da Apache Commons Math.

Se usate Maven:

<dependencies>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <version>3.6.1</version>
    </dependency>
</dependencies>

Adesso vediamo un esempio di codice Java:

import org.apache.commons.math3.util.Precision;
import java.math.BigDecimal;

public class Main {

    public static void main(String[] args) {
        double numero = 8521.6641263;
        double rounded1 = Precision.round(numero, 2);
        double rounded2 = Precision.round(numero, 2, BigDecimal.ROUND_DOWN);
        double rounded3 = Precision.round(numero, 2, BigDecimal.ROUND_UP);
        double rounded4 = Precision.round(numero, 2, BigDecimal.ROUND_CEILING);

        System.out.println(numero);
        System.out.println(rounded1);
        System.out.println(rounded2);
        System.out.println(rounded3);
        System.out.println(rounded4);
    }

}

Se poi andate a vedere cosa fa la classe Precision, noterete che dietro fa lui i calcoli con BigDecimal.

Enjoy!


Condividi

1 Commenti

  • java lovers

    apache commons docet !

    20/03/2020

Commentami!