Warum erhalte ich folgende Ausgabe:Warum bekomme ich unterschiedliche BigDecimal-Rundungsergebnisse?
1,11
1,13
wenn unter Code ausführen:
public static void main(String[] args) {
double aDouble = 1.115;
double bDouble = 1.125;
System.out.println(roundTo2Decimal(aDouble));
System.out.println(roundTo2Decimal(bDouble));
}
public static BigDecimal roundTo2Decimal(double doubleToRound){
BigDecimal bigDecimal = new BigDecimal(doubleToRound);
return bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP);
}
statt erwartetem Ergebnis:
1,12
1.13?
Die allgemeine Lektion ist hier, dass, wenn Sie Dezimalzahlen Pflege immer, sollten Sie nicht einmal _touch_ 'double'. –