web-dev-qa-db-fra.com

Conversion double en chaîne

Je ne suis pas sûr que ce soit moi ou quoi, mais j'ai un problème pour convertir un double en chaîne.

voici mon code:

double total = 44;
String total2 = Double.toString(total);

Est-ce que je fais quelque chose de mal ou est-ce que je manque une étape ici.

J'obtiens l'erreur NumberFormatException en essayant de convertir ceci.

totalCost.setOnTouchListener(new OnTouchListener() {
  public boolean onTouch(View v, MotionEvent event) {
    try {
      double priceG = Double.parseDouble(priceGal.getText().toString());
      double valG = Double.parseDouble(volGal.toString());
      double total = priceG * valG;
      String tot = new Double(total).toString();
      totalCost.setText(tot);
    } catch(Exception e) {
      Log.e("text", e.toString());
    }

    return false;
  }         
});

J'essaie de faire cela dans un onTouchListener. Ill poster plus de code, essentiellement lorsque l'utilisateur touche la boîte de texte, je veux que l'information calcule un remplissage de la boîte de texte.

185
Brandon Wilson
double total = 44;
String total2 = String.valueOf(total);

Cela convertira le double en chaîne

430
Bhavit S. Sengar

Si vous utilisez Double.toString (), si le nombre est trop petit ou trop grand, vous obtiendrez une notation scientifique comme celle-ci: 3.4875546345347673E-6. Il existe plusieurs façons d’avoir plus de contrôle sur le format de la chaîne de sortie. 

double num = 0.000074635638;
// use Double.toString()
System.out.println(Double.toString(num));
// result: 7.4635638E-5

// use String.format
System.out.println(String.format ("%f", num));
// result: 0.000075
System.out.println(String.format ("%.9f", num));
// result: 0.000074636

// use DecimalFormat
DecimalFormat decimalFormat = new DecimalFormat("#,##0.000000");
String numberAsString = decimalFormat.format(num);
System.out.println(numberAsString);
// result: 0.000075

Utiliser String.format () sera le meilleur moyen pratique. 

15
Nicholas Lu

Ce code compile et fonctionne pour moi. Il convertit un double en chaîne en utilisant les appels que vous avez essayés.

public class TestDouble {

    public static void main(String[] args) {
        double total = 44;
        String total2 = Double.toString(total);

        System.out.println("Double is " + total2);
    }
}

Je suis intrigué par votre vision de l'exception NumberFormatException. Regardez la trace de la pile. Je suppose que vous avez un autre code que vous ne montrez pas dans votre exemple et qui provoque la levée de cette exception. 

14
ditkin

L'exception provient probablement des appels parseDouble (). Vérifiez que les valeurs données à cette fonction reflètent réellement un double. 

6
Stephan
double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

Ça marche. faut être répétitif.

3
agon

Kotlin

Vous pouvez utiliser .toString directement sur tout type de données dans kotlin, comme

val d : Double = 100.00
val string : String = d.toString()
1
Khemraj
double priceG = Double.parseDouble(priceGal.getText().toString());
double valG = Double.parseDouble(volGal.toString());

L'un d'entre eux lance l'exception. Vous devez ajouter une certaine journalisation/impression pour voir ce qu'il y a dans volGal et priceGal - ce n'est pas ce que vous pensez. 

1
Brian Roach
double total = 44;
String total2= new Double(total).toString();

ce code fonctionne

1
olyanren

double.toString() devrait fonctionner. Pas le type de variable Double, mais la variable elle-même double.

1
Matt F.

Que diriez-vous quand vous faites le 

totalCost.setText(tot);

Tu fais juste 

totalCost.setText( "" + total );

Où "" + <variable> le convertira automatiquement en chaîne

0

Utilisez la classe StringBuilder, comme suit:

StringBuilder meme = new StringBuilder(" ");

// Convert and append your double variable
meme.append(String.valueOf(doubleVariable));

// Convert string builder to string
jTextField9.setText(meme.toString());

Vous obtiendrez la sortie souhaitée.

0
abhishek sheregar

Information complète

Vous pouvez utiliser String.valueOf () pour float, double, int, boolean, etc.

double d = 0;
float f = 0;
int i = 0;
short i1 = 0;
char c = 0;
boolean bool = false;
char[] chars = {};
Object obj = new Object();


String.valueOf(d);
String.valueOf(i);
String.valueOf(i1);
String.valueOf(f);
String.valueOf(c);
String.valueOf(chars);
String.valueOf(bool);
String.valueOf(obj);
0
Khemraj

Il suffit d'utiliser ce qui suit:

doublevalue+""; 

Cela fonctionnera pour tout type de données.

Exemple:

Double dd=10.09;
String ss=dd+"";
0
Rahul Purohit