Dubbel omzetten naar string

Ik weet niet zeker of ik het ben of wat, maar ik heb een probleem met het converteren van een double naar string.

hier is mijn code:

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

Doe ik iets verkeerd of mis ik hier een stap.

Ik krijg de foutmelding NumberFormatExceptionwanneer ik dit probeer te converteren.

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;
  }         
});

Ik probeer dit te doen in een onTouchListener. Ik zal meer code posten, eigenlijk wanneer de gebruiker het tekstvak aanraakt, wil ik dat de informatie het tekstvak vult.


Antwoord 1, autoriteit 100%

double total = 44;
String total2 = String.valueOf(total);

Dit converteert dubbel naar String


Antwoord 2, autoriteit 6%

Als u Double.toString() gebruikt, krijgt u, als het getal te klein of te groot is, een wetenschappelijke notatie zoals deze: 3.4875546345347673E-6. Er zijn verschillende manieren om meer controle te hebben over het formaat van de uitvoertekenreeks.

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

Gebruik string.Format () is de beste handige manier.


Antwoord 3, Autoriteit 3%

Deze code compileert en werkt voor mij. Het converteert een dubbel naar een string met behulp van de oproepen die u hebt geprobeerd.

public class TestDouble {
    public static void main(String[] args) {
        double total = 44;
        String total2 = Double.toString(total);
        System.out.println("Double is " + total2);
    }
}

Ik ben verbaasd door je zien van de nummerformatexception. Kijk naar het stapelspoor. Ik vermoed dat je een andere code hebt die je niet in je voorbeeld laat zien die ervoor zorgt dat die uitzondering wordt gegooid.


Antwoord 4

De uitzondering komt waarschijnlijk van de Parmsedouble () oproepen. Controleer of de waarden die aan die functie zijn gegeven, echt een double weerspiegelen.


Antwoord 5

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());

het werkt. moet repetitief zijn.


Antwoord 6

KOTLIN

U kunt .toStringrechtstreeks gebruiken op elk gegevenstype in Kotlin, zoals

val d : Double = 100.00
val string : String = d.toString()

Antwoord 7

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

Een daarvan is het gooien van de uitzondering. U moet wat logboekregistratie/afdrukken toevoegen om te zien wat er in volGalen priceGalstaat – het is niet wat u denkt.


Antwoord 8

double.toString()zou moeten werken. Niet het variabele type double, maar de variabele zelf double.


Antwoord 9

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

Antwoord 10

Gebruik gewoon het volgende:

doublevalue+""; 

Dit werkt voor elk gegevenstype.

Voorbeeld:

Double dd=10.09;
String ss=dd+"";

Antwoord 11

Gebruik de klasse StringBuilder, zoals:

StringBuilder meme = new StringBuilder(" ");
// Convert and append your double variable
meme.append(String.valueOf(doubleVariable));
// Convert string builder to string
jTextField9.setText(meme.toString());

U krijgt de gewenste uitvoer.


Antwoord 12

Wat als je de

. doet

totalCost.setText(tot);

Je doet het gewoon

totalCost.setText( "" + total );

Waar de “” + < variabele > zal het automatisch naar string converteren


Antwoord 13

Volledige informatie

Je kunt String.valueOf() gebruiken voor 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);

Antwoord 14

Er zijn drie manieren om double naar Stringte converteren.

  1. Double.toString(d)
  2. String.valueOf(d)
  3. “”+d

    openbare klasse DoubleToString {

    public static void main(String[] args) {
        double d = 122;
        System.out.println(Double.toString(d));
        System.out.println(String.valueOf(d));
        System.out.println(""+d);
    }
    

    }

String om te verdubbelen

  1. Double.parseDouble(str);

Antwoord 15

Als je het decimaalteken wilt opmaken en converteren naar een Stringhelpt DecimalFormatveel.

Voorbeeld:

DecimalFormat format = new DecimalFormat("#.####");
format.format(yourDoubleObject);

Dit zijn verschillende symbolen die worden ondersteund als onderdeel van patroon in decimalfomat .

Other episodes