Tronquer nombre de chiffre apres virgule

Résolu
mouzoun_issam Messages postés 16 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 24 août 2006 - 19 déc. 2005 à 14:06
yarkier Messages postés 11 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 20 septembre 2010 - 20 sept. 2010 à 09:22
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

yarkier Messages postés 11 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 20 septembre 2010 3
20 sept. 2010 à 09:22
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
2
jcodeunpeu Messages postés 365 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 2 décembre 2006 2
19 déc. 2005 à 15:28
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+
1
morphorpse Messages postés 40 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 8 septembre 2006 1
19 déc. 2005 à 14:18
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
0
mouzoun_issam Messages postés 16 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 24 août 2006
19 déc. 2005 à 14:36
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mouzoun_issam Messages postés 16 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 24 août 2006
19 déc. 2005 à 14:45
Lle probleme si j'ai essaiyé de convertir le nombre en String je n'arrive pas!
0
mouzoun_issam Messages postés 16 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 24 août 2006
19 déc. 2005 à 16:31
Sayer j'ai trouver une solution:
float i=12.122257;
String amount = new Double(i).toString();
amount = amount.substring(0,5);
out.print(amount+"%");
0
cs_ankou22 Messages postés 81 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 7 juin 2012
22 mai 2007 à 15:29
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
0
Rejoignez-nous