Stavo analizzando il caso in cui DecimalFormat
ha arrotondato un numero BigDecimal
e su un'altra macchina, è troncato.DecimalFormat genera due risultati diversi su macchine diverse
Ho verificato tutte le configurazioni su entrambe le macchine (e sono tutte uguali, presumo). Solo la differenza che ho capito è la versione JDK.
La macchina 1 funziona su JDK1.6. Ma, ho provato lo stesso con JDK1.7 su Machine 1, funziona come con JDK1.6.
Machine 2 è in esecuzione su JDK1.7
seguito è il frammento di codice:
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
BigDecimal anObject = new BigDecimal("3.8880");
String str = decimalFormat.format(((Number)anObject).doubleValue());
System.out.println(str);
sulla macchina 1 risultato è: 3.39
On Machine 2 risultato è: 3.38
Non vedo come il numero 3.8880 potrebbe essere arrotondato o troncato a 3.38 o 3.39. Intendi 3.88/3.89? O non hai fatto il test correttamente? –
Prova a eseguire il prompt dei comandi "java -version". Forse solo un bug JVM. – Aris2World