Problème avec les double en java

geninfo25 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
geninfo25 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention  
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention  
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention  
 
merci ami
0