232 votes

Format Float à n décimales

Je dois formater un flottant à "n" décimales.

essayait de BigDecimal, mais la valeur de retour n'est pas correcte ...

 public static float Redondear(float pNumero, int pCantidadDecimales) {
    // the function is call with the values Redondear(625.3f, 2)
    BigDecimal value = new BigDecimal(pNumero);
    value = value.setScale(pCantidadDecimales, RoundingMode.HALF_EVEN); // here the value is correct (625.30)
    return value.floatValue(); // but here the values is 625.3
}
 

Je dois retourner une valeur flottante avec le nombre de décimales que je spécifie.

J'ai besoin d'un retour de valeur "Float" pas "Double".

Merci d'avance.

582voto

Arve Points 3306

Vous pouvez également transmettre la valeur flottante et utiliser:

 String.format("%.2f", floatValue);
 

38voto

Nick Campion Points 7263

Jetez un oeil à DecimalFormat . Vous pouvez facilement l'utiliser pour prendre un nombre et lui donner un nombre défini de décimales.

Edit : Exemple

18voto

Anupam Points 75

Essayez ceci cela m'a beaucoup aidé

 BigDecimal roundfinalPrice = new BigDecimal(5652.25622f).setScale(2,BigDecimal.ROUND_HALF_UP);
 

Le résultat sera roundfinalPrix -> 5652.26

1voto

n3utrino Points 1492

Je pense que ce que vous voulez ist

et permet d’afficher la valeur de retour.

retournera toujours 625.3 car son principalement utilisé pour calculer quelque chose.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X