Limitação de casas decimais

Como posso limitar as casas decimais do vetor B[i]?

public static void main(String[] args) {
    int A[] = {6, 7, 23, 16, 2, 36, 49, 12, 87, 130, 166, 25, 256, 289, 324};
    double B[] = new double [15];
    
    for(int i=0; i<A.length; i++){
        B[i] = Math.sqrt(A[i]);
    }

    System.out.println(Arrays.toString(A));
    System.out.println(Arrays.toString(B));
    
    
}

}

Eu pensei em usar BigDecimal. Seria assim:

for (int i = 0; i < A.length; i++) {
  B[i] = BigDecimal.valueOf(Math.sqrt(A[i])).setScale(2, RoundingMode.HALF_UP).doubleValue();
}

Através do método setScale vc pode definir a quantidade de casas decimais, no caso eu usei 2, e a estrátegia de arredondamento, no caso a HALF_UP, mas vc pode usar a que mais se adequar para sua necessidade, veja mais aqui.

1 curtida