Sto usando jdk 1.8.0_45, ei nostri test hanno scoperto un bug nel rouding. RoundingMode.HALF_DOWN funziona allo stesso modo RoundingMode.HALF_UP quando l'ultimo decimale che decidono l'arrotondamento è 5.Problema RoundingMode.HALF_DOWN in Java8
ho trovato questioni connesse con RoundingMode.HALF_UP, ma sono fissati in aggiornamento 40. Ho anche messo un bug al oracolo, ma dalla mia esperienza sono davvero insensibili.
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));
}
}
effettivo risultato: rotonda giù 10,5556 rotonda fino 10,5556
Risultato atteso (ottenere con JDK 1.7): rotonda giù 10,5555 rotonda fino 10,5556
Questo bug non riproduce con JDK 1.8.0_45.E ho letto il problema che hai detto, ma non è lo stesso problema. Questo problema è stato risolto. – cristi