Bonjour,
Voici mon problème.
J'ai une méthode qui permet d'afficher un décimal avec uncertain nombre de virgules, dont voici le code :
public static String affichDecimalValue(double ad_value,
int ai_nbDecimalMax)
{
BigDecimal lbd_value = new BigDecimal(ad_value);
lbd_value = lbd_value.setScale(ai_nbDecimalMax, BigDecimal.ROUND_HALF_UP);
return lbd_value.toString();
}
Le problème est le suivant, avec certains nombre l'arrondi ne se fait pas vers la moitié suppérieur (>=5) comme précisé dans la fonction setScale
Exemple :
1) affichDecimalValue(9.185,2) me donne comme résultat : 9.19
2) affichDecimalValue(9.155,2) me donne comme résultat : 9.15
3) affichDecimalValue(9.125,2) me donne comme résultat : 9.13
Quelqu'un sait-il pourquoi l'exemple n°2 ne donne pas 9.16 !!!!!!!
merci d'avance pour votre aide
Olivier
P.S. Si quelqu'un a une autre idée pour réaliser l'arrondi, je suis preneur aussi
Partager