Vraag Converteer tekenreeks naar dubbel in Java


Hoe kan ik een String zoals "12.34" naar een double in Java?


248
2018-04-24 09:12


oorsprong


antwoorden:


Je kunt gebruiken Double.parseDouble() om een ​​te converteren String naar een double:

String text = "12.34"; // example String
double value = Double.parseDouble(text);

Voor jouw geval lijkt het erop dat je wilt:

double total = Double.parseDouble(jlbTotal.getText());
double price = Double.parseDouble(jlbPrice.getText());

425
2018-04-24 09:14



Als u problemen ondervindt bij het ontleden van tekenreeksen naar decimale waarden, moet u "," in het getal vervangen door "."


String number = "123,321";
double value = Double.parseDouble( number.replace(",",".") );

44
2018-04-03 14:34



double d = Double.parseDouble(aString);

Dit moet de string aString in de dubbele d converteren.


36
2018-04-24 09:16



Probeer het volgende om een ​​reeks opnieuw in een dubbel te converteren

String s = "10.1";
Double d = Double.parseDouble(s);

De methode parseDouble bereikt het gewenste effect, en de methode Double.valueOf () ook.


33
2018-04-17 05:42



Gebruik new BigDecimal(string). Dit garandeert een correcte berekening later.

Als vuistregel - altijd gebruiken BigDecimal voor gevoelige berekeningen zoals geld.

Voorbeeld:

String doubleAsString = "23.23";
BigDecimal price = new BigDecimal(doubleAsString);
BigDecimal total = price.plus(anotherPrice);

28
2018-04-24 09:18



Je hoeft het alleen maar te doen ontleed reekswaarden met behulp van Double

String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);

20
2018-03-22 12:00



Onder verwijzing naar de quote van Robertiano hierboven - omdat dit veruit de meest veelzijdige en lokalisatie-adaptieve versie is. Het verdient een volledige post!

Andere optie:

DecimalFormat df = new DecimalFormat(); 
DecimalFormatSymbols sfs = new DecimalFormatSymbols();
sfs.setDecimalSeparator(','); 
df.setDecimalFormatSymbols(sfs);
double = df.parse(number).doubleValue();

10
2017-09-03 20:05



String double_string = "100.215";
Double double = Double.parseDouble(double_string);

8
2017-08-01 09:44



Er is ook een andere manier.

Double temp = Double.valueOf(str);
number = temp.doubleValue();

Dubbel is een klasse en "temp" is een variabele. "nummer" is het laatste nummer dat u zoekt.


3
2018-01-27 22:03



Gebruik makend van Double.parseDouble() zonder omgeving try/catch blok kan potentieel veroorzaken NumberFormatException had de dubbele invoerstring niet conform een ​​geldig formaat.

Guava biedt hiervoor een gebruiksmethode die terugkeert null in het geval dat uw string niet kan worden geparseerd.

https://google.github.io/guava/releases/19.0/api/docs/com/google/common/primitives/Doubles.html#tryParse(java.lang.String)

Double valueDouble = Doubles.tryParse(aPotentiallyCorruptedDoubleString);

Tijdens runtime levert een ongeldige String-invoer op null toegewezen aan valueDouble


2
2018-01-09 09:14



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 uitvoer zal het dubbele nummer 45563.0 zijn


2
2018-03-04 12:04