Ich versuche, die doppelten Werte auf zwei Dezimalstellen abzurunden, aber es ist nicht in allen Szenarien arbeitetJava Doppel Runde auf 2 Komma immer
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
}
Kurz gesagt, egal ob dezimal vorhanden ist oder nicht, Halten Sie die Werte immer auf 2 Dezimalstellen, auch wenn zusätzliche Nullen aufgefüllt werden müssen.
Jede Hilfe ist willkommen!
Möglicherweise müssen Sie anstelle von setScale das Dezimalformat verwenden. –