Problème avec les double en java

geninfo25 Messages postés 10 Statut Membre -  
geninfo25 Messages postés 10 Statut Membre -
Bonjour,

je veux savoir quelle est la méthode java qui nous permet de fixer le nombre des entiers après la virgule dans un nombre double .
par exemple je veux écrire le nombre 2.103651845 comme ça: 2.10

merci d'avance
A voir également:

4 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Tu peux t'en sortir directement à l'affichage :
double d = 2.1036451845;
System.out.printf("%.2f\n",d);
0
geninfo25 Messages postés 10 Statut Membre
 
mais je veux afficher le résultat dans une jtextfield (jtextfield1.settext(String.valueof(d)))
ou d est le nombre 0.1025469875
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Il te suffit d'enlever les chiffres qui t'embêtent (je détaille, mais on peut faire ça en 3 lignes) :

double d = 0.125;
String s = String.valueOf(d);
int pos = s.indexOf('.')+1;
int sz = s.length();
int n = Math.min(pos+2, sz);
String txt = s.substring(0,n);
jtextfield1.setText(txt);
0
geninfo25 Messages postés 10 Statut Membre
 
je pense tu n'a pas me compris le nombre 0.1025..... c'est un exemple stt ,
mais moi je veux écrire des nombre double avec deux chiffres âpre la virgule c'est ça mon problème ces nombres peuvent être 0.154875852 comme ils peuvent être 4587.12544658 etc et moi je veux les écrire comme ça 0.15 et 4587.12
0
KX Messages postés 19031 Statut Modérateur 3 020
 
C'est plutôt toi qui n'a pas compris le code que j'ai fait je pense...
Car tu as juste à remplacer la valeur de d de départ pour que ça aille correctement !

Je fais une fonction ce sera peut-être plus clair :

/**
 * @param d le double à convertir
 * @param nb le nombre de chiffres après la virgule
 * @return le String représentant d avec nb chiffres après la virgule
 */ 
public static String doubleToString(double d, int nb)
{
    String s = String.valueOf(d);
    int pos = s.indexOf('.')+1;
    int sz = s.length();
    int n = Math.min(pos+nb, sz);
    String txt = s.substring(0,n);
    return txt;
}

Version condensée :

public static String doubleToString(double d, int nb) {
    String s = String.valueOf(d);
    return s.substring(0,Math.min(s.indexOf('.')+1+nb, s.length()));
}

Exemple :

jtextfield1.settext(doubleToString(4587.12544658,2));
0
geninfo25 Messages postés 10 Statut Membre
 
merci ami
0