Java String converteren naar Double

1. Overzicht

In deze zelfstudie behandelen we vele manieren om een Draad in een dubbele in Java.

2. Double.parseDouble

We kunnen een Draad naar een dubbele de ... gebruiken Dubbele.parseDouble methode:

assertEquals (1.23, Double.parseDouble ("1.23"), 0.000001);

3. Double.valueOf

Evenzo kunnen we een Draad in een doos Dubbele de ... gebruiken Double.valueOf methode:

assertEquals (1,23, Double.valueOf ("1,23"), 0,000001);

Merk op dat de geretourneerde waarde van Double.valueOf is een boxed Dubbele. Sinds Java 5 is deze boxed Dubbele wordt door de compiler omgezet in een primitief dubbele waar nodig.

Over het algemeen, we zouden de voorkeur moeten geven Double.parseDouble omdat het de compiler niet vereist om auto-unboxing uit te voeren.

4. DecimalFormat.parse

Wanneer een Draad vertegenwoordigen een dubbele heeft een complexer formaat, we kunnen een DecimalFormat.

We kunnen bijvoorbeeld een op decimalen gebaseerde valutawaarde converteren zonder niet-numerieke symbolen te verwijderen:

DecimalFormat-indeling = nieuwe DecimalFormat ("\ u00A4 #, ## 0.00"); format.setParseBigDecimal (true); BigDecimal decimal = (BigDecimal) format.parse ("- $ 1.000,57"); assertEquals (-1000.57, decimal.doubleValue (), 0.000001);

Net als bij de Double.valueOf, de DecimalFormat.parse methode retourneert een Aantal, die we kunnen converteren naar een primitief dubbele de ... gebruiken doubleValue methode. Bovendien gebruiken we de setParseBigDecimal methode om te forceren DecimalFormat.parse om een BigDecimal.

Meestal is de DecimalFormat geavanceerder is dan we nodig hebben, dus moeten we de voorkeur geven aan de Double.parseDouble of de Double.valueOf in plaats daarvan.

Om meer te weten te komen over DecimalFormat, raadpleeg dan een praktische gids voor DecimalFormat.

5. Ongeldige conversies

Java biedt een uniforme interface voor het afhandelen van ongeldige numerieke waarden Draads.

Met name Double.parseDouble, Double.valueOf, en DecimalFormat.parse Gooi een NullPointerException wanneer we passeren nul.

Hetzelfde, Double.parseDouble en Double.valueOf Gooi een NumberFormatException wanneer we een ongeldige string doorgeven die niet kan worden geparseerd naar een dubbele (zoals &).

Ten slotte, DecimalFormat.parse gooit een ParseException wanneer we een invalide passeren Draad.

6. Vermijd afgeschreven conversies

Vóór Java 9 konden we een boxed Dubbele van een Draad door een Dubbele:

nieuwe Double ("1.23");

Vanaf versie 9 heeft Java deze methode officieel afgeschaft.

7. Conclusie

Kortom, Java biedt ons meerdere methoden om te converteren Draads in dubbele waarden.

Over het algemeen raden we aan om Double.parseDouble tenzij een boxed Dubbele is nodig.

De broncode voor dit artikel, inclusief voorbeelden, is te vinden op GitHub.