sto cercando di arrotondare i valori doppi a 2 cifre decimali, ma non funziona in tutti gli scenariJava Doppio Turno off per 2 decimali sempre
public static double round(double value, int places) {
if (places < 0) throw new IllegalArgumentException();
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(places, RoundingMode.HALF_UP);
return bd.doubleValue();
}
public static void main(String[] args) {
System.out.println(round(25.0,2)); //25.0 - expected 25.00
System.out.println(round(25.00d,2)); //25.0 - expected 25.00
System.out.println(round(25,2)); //25.0 - expected 25.00
System.out.println(round(25.666,2)); //25.67
}
In breve, non importa se esiste o no decimale, mantenere sempre i valori fino a 2 decimali anche se è necessario aggiungere ulteriori zeri.
Qualsiasi aiuto è apprezzato!
Potrebbe essere necessario utilizzare il formato decimale anziché setScale. –