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 NumberFormatException
wanneer 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 .toString
rechtstreeks 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 volGal
en priceGal
staat – 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.
- Double.toString(d)
- String.valueOf(d)
-
“”+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
- Double.parseDouble(str);
Antwoord 15
Als je het decimaalteken wilt opmaken en converteren naar een String
helpt DecimalFormat
veel.
Voorbeeld:
DecimalFormat format = new DecimalFormat("#.####");
format.format(yourDoubleObject);
Dit zijn verschillende symbolen die worden ondersteund als onderdeel van patroon in decimalfomat .