Je analysais cas où DecimalFormat
arrondi un numéro BigDecimal
et sur une autre machine, il est tronqué.DecimalFormat résultats dans deux résultats différents sur des machines différentes
J'ai vérifié toutes les configurations sur les deux machines (et toutes sont identiques, je suppose). Seule différence que j'ai compris, c'est la version JDK.
La machine 1 est en cours d'exécution sur JDK1.6. Mais, j'ai essayé même avec JDK1.7 sur la machine 1, il fonctionne même comme avec JDK1.6.
Machine 2 est en cours d'exécution sur JDK1.7
Après est l'extrait de code:
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
BigDecimal anObject = new BigDecimal("3.8880");
String str = decimalFormat.format(((Number)anObject).doubleValue());
System.out.println(str);
On Machine 1 résultat est: 3,39
sur la machine 2 résultat est: 3,38
Je ne vois pas comment le nombre 3.8880 pourrait être arrondi ou tronqué à 3.38 ou 3.39. Voulez-vous dire 3,88/3,89? Ou n'avez-vous pas fait le test correctement? –
Essayez de courir sur l'invite de commande "java -version". Peut-être juste un bug de la JVM. – Aris2World