yarkier
Messages postés11Date d'inscriptionmercredi 25 mars 2009StatutMembreDernière intervention20 septembre 20103 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
jcodeunpeu
Messages postés365Date d'inscriptionmercredi 9 novembre 2005StatutMembreDernière intervention 2 décembre 20062 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+
cs_ankou22
Messages postés81Date d'inscriptionvendredi 3 novembre 2000StatutMembreDerniè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"