Hoe kan ik een String
zoals "12.34"
converteren naar een double
in Java?
Antwoord 1, autoriteit 100%
U kunt Double.parseDouble()
om een String
om te zetten in een double
:
String text = "12.34"; // example String
double value = Double.parseDouble(text);
Voor jouw geval ziet het eruit zoals je wilt:
double total = Double.parseDouble(jlbTotal.getText());
double price = Double.parseDouble(jlbPrice.getText());
Antwoord 2, autoriteit 11%
Als je problemen hebt met het ontleden van tekenreeksen naar decimale waarden, moet je “,” in het getal vervangen door “.”
String number = "123,321";
double value = Double.parseDouble( number.replace(",",".") );
Antwoord 3, autoriteit 8%
Probeer het volgende om een string weer om te zetten in een double
String s = "10.1";
Double d = Double.parseDouble(s);
De methode parseDouble zal het gewenste effect bereiken, net als de methode Double.valueOf().
Antwoord 4, autoriteit 7%
double d = Double.parseDouble(aString);
Dit zou de string aString in de dubbele d moeten omzetten.
Antwoord 5, autoriteit 6%
Gebruik new BigDecimal(string)
. Dit garandeert later een goede berekening.
Als vuistregel: gebruik altijd BigDecimal
voor gevoelige berekeningen zoals geld.
Voorbeeld:
String doubleAsString = "23.23";
BigDecimal price = new BigDecimal(doubleAsString);
BigDecimal total = price.plus(anotherPrice);
Antwoord 6, autoriteit 4%
U hoeft alleen stringwaarden te ontleden met Double
String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);
Antwoord 7, autoriteit 3%
Ik citeer nogmaals het citaat van Robertiano hierboven – omdat dit verreweg de meest veelzijdige en lokalisatie-adaptieve versie is. Het verdient een volledige post!
Een andere optie:
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols sfs = new DecimalFormatSymbols();
sfs.setDecimalSeparator(',');
df.setDecimalFormatSymbols(sfs);
double d = df.parse(number).doubleValue();
Antwoord 8, autoriteit 2%
String double_string = "100.215";
Double double = Double.parseDouble(double_string);
Antwoord 9
Er is ook een andere manier.
Double temp = Double.valueOf(str);
number = temp.doubleValue();
Double is een klasse en “temp” is een variabele.
“nummer” is het laatste nummer dat u zoekt.
Antwoord 10
Dit is wat ik zou doen
public static double convertToDouble(String temp){
String a = temp;
//replace all commas if present with no comma
String s = a.replaceAll(",","").trim();
// if there are any empty spaces also take it out.
String f = s.replaceAll(" ", "");
//now convert the string to double
double result = Double.parseDouble(f);
return result; // return the result
}
U voert bijvoorbeeld de tekenreeks “4 55,63. 0” in de
output zal het dubbele nummer 45563.0
Antwoord 11
String s = "12.34";
double num = Double.valueOf(s);
Antwoord 12
Het gebruik van Double.parseDouble()
zonder het omringende try/catch
-blok kan ertoe leiden dat een potentiële NumberFormatException
de invoer dubbele tekenreeks niet conformeert aan een geldig formaat.
Guava biedt hiervoor een hulpprogramma-methode die null
retourneert voor het geval je string niet kan worden geparseerd.
Double valueDouble = Doubles.tryParse(aPotentiallyCorruptedDoubleString);
Tijdens runtime levert een verkeerd opgemaakte String-invoer null
op die is toegewezen aan valueDouble
Antwoord 13
Gebruik dit om elk tekenreeksnummer te verdubbelen als je int nodig hebt, converteer gewoon het gegevenstype van num en num2 naar int ;
nam alle gevallen voor elke string dubbel met Eng:”Bader Qandeel”
public static double str2doubel(String str) {
double num = 0;
double num2 = 0;
int idForDot = str.indexOf('.');
boolean isNeg = false;
String st;
int start = 0;
int end = str.length();
if (idForDot != -1) {
st = str.substring(0, idForDot);
for (int i = str.length() - 1; i >= idForDot + 1; i--) {
num2 = (num2 + str.charAt(i) - '0') / 10;
}
} else {
st = str;
}
if (st.charAt(0) == '-') {
isNeg = true;
start++;
} else if (st.charAt(0) == '+') {
start++;
}
for (int i = start; i < st.length(); i++) {
if (st.charAt(i) == ',') {
continue;
}
num *= 10;
num += st.charAt(i) - '0';
}
num = num + num2;
if (isNeg) {
num = -1 * num;
}
return num;
}
Antwoord 14
Probeer dit,
BigDecimal bdVal = nieuwe BigDecimal(str);
Als je alleen Double wilt, probeer dan
Double d = Double.valueOf(str);
System.out.println(String.format(“%.3f”, nieuwe BigDecimal(d)));