Ich benutze jdk 1.8.0_45, und unsere Tests entdeckt einen Fehler in rouding. RoundingMode.HALF_DOWN funktioniert genauso wie RoundingMode.HALF_UP, wenn die letzte Nachkommastelle, die die Rundung entscheiden, 5.RoundingMode.HALF_DOWN Problem in Java8
ich ähnliche Probleme mit RoundingMode.HALF_UP gefunden, aber sie fixiert sind in Update 40. Ich habe auch einen Fehler der Orakel, aber aus meiner Erfahrung sind sie wirklich unempfänglich.
package testjava8;
import java.math.RoundingMode;
import java.text.DecimalFormat;
public class Formatori {
public static void main(String[] args) {
DecimalFormat format = new DecimalFormat("#,##0.0000");
format.setRoundingMode(RoundingMode.HALF_DOWN);
Double toFormat = 10.55555;
System.out.println("Round down");
System.out.println(format.format(toFormat));
format.setRoundingMode(RoundingMode.HALF_UP);
toFormat = 10.55555;
System.out.println("Round up");
System.out.println(format.format(toFormat));
}
}
Tatsächliches Ergebnis: Abrunden 10,5556 Aufrunden 10,5556
Erwartetes Ergebnis (erhalten mit jdk 1.7): Abrunden 10,5555 Aufrunden 10,5556
Dieser Fehler reproduziert nicht mit jdk 1.8.0_45.Und ich habe das Thema gelesen, das du gesagt hast, aber es ist nicht das gleiche Problem. Dieses Problem wurde behoben. – cristi