Tronquer nombre de chiffre apres virgule [Résolu]

Signaler
Messages postés
16
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
24 août 2006
-
Messages postés
11
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
20 septembre 2010
-
Bah voilà, j'ai float f = 12,45467464 et moi j'veux dans un String recupérer 12,45..

Ça fait déjà 1/2 heure que je cherche et ça commence à me prendre le chou de pas trouver ce truc qui doit être super simple

Merci pour votre aide, j'continue d'chercher

7 réponses

Messages postés
11
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
20 septembre 2010
2
Salut une autre solution toute simple est d'utilisé le type de variable int (qui tronque juste à la virgule) avec une petite variante) :


float i =1.2547896658; //ma variable à tronquer
int j= i*100; // autant de zéro de que nombre après la virgule voulu
i=j/100; //remettre le même nombre de zéro que précédemment
Messages postés
40
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
8 septembre 2006
1
Le f est un float



public String conversion()

{

String a = ""+f+"";

a=a.substring(0,5);

return a;

}


On convertit le float en String et on ne conserve que les 5 premiers caractères.

Bon courage
Morphorpse
Messages postés
16
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
24 août 2006

Merci
Messages postés
16
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
24 août 2006

Lle probleme si j'ai essaiyé de convertir le nombre en String je n'arrive pas!
Messages postés
365
Date d'inscription
mercredi 9 novembre 2005
Statut
Membre
Dernière intervention
2 décembre 2006

salut,
convertir un nombre en chaîne, rien de plus simple, pas de conversion :
String str = nombre + ""; // l'opérateur + permet de concaténer ... une chaîne "" avec tout objet.

pour le problème de Format de nombre decimal, il existe le classe
NumberFormat:

Number n = null;
NumberFormat formater3 =
new DecimalFormat( ".###" ); // défini nbNombres aprés le point ...## pour 2 ...
float f = 12.45467464f;
String str = formater3.format(f); // formatte
try {
n = formater3.parse(str); // relit le nombre éventuellement
}catch(ParseException pe) {
System.out.println("parse : " + pe);
}
A+
Messages postés
16
Date d'inscription
jeudi 20 octobre 2005
Statut
Membre
Dernière intervention
24 août 2006

Sayer j'ai trouver une solution:
float i=12.122257;
String amount = new Double(i).toString();
amount = amount.substring(0,5);
out.print(amount+"%");
Messages postés
81
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
7 juin 2012

Salut,
Personnellement je trouve un peu étrange de marquer "Réponse acceptée".


Si i vaut 1212.2257 alors amount= "1212."
Si i vaut 121222.57 alors amount="12122" (perte de donnée)

alors que la question posée est " tronquer nombre de chiffre apres virgule". La solution de [jcodeunpeu], new DecimalFormat(".###");  ne fonctionne pas chez moi.

La réponse que je propose :
   En ajoutant (import java.text.NumberFormat;)

  float f = 12.45467464f;
  NumberFormat Myformat = NumberFormat.getInstance();
  Myformat.setMinimumFractionDigits(2);       //Nb de Digit mini
  Myformat.setMaximumFractionDigits(2);       //Nb de Digit Maxi
  String str = Myformat.format(f);                      //Formatage str="12.45"

ANKOU22