Konvertering af Java-streng til dobbelt

1. Oversigt

I denne vejledning dækker vi mange måder at konvertere en Snor ind i en dobbelt i Java.

2. Double.parseDouble

Vi kan konvertere en Snor til en dobbelt bruger Dobbelt.parseDobbelt metode:

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

3. Double.valueOf

På samme måde kan vi konvertere en Snor ind i en boks Dobbelt bruger Double.valueOf metode:

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

Bemærk, at den returnerede værdi af Double.valueOf er en boks Dobbelt. Siden Java 5, dette boxed Dobbelt konverteres af compileren til en primitiv dobbelt hvor det er nødvendigt.

Generelt, vi bør favorisere Double.parseDouble da det ikke kræver, at compileren udfører automatisk unboxing.

4. DecimalFormat.parse

Når en Snor repræsenterer en dobbelt har et mere komplekst format, kan vi bruge en Decimalformat.

For eksempel kan vi konvertere en decimalbaseret valuta værdi uden at fjerne ikke-numeriske symboler:

DecimalFormat format = nyt DecimalFormat ("\ u00A4 #, ## 0.00"); format.setParseBigDecimal (sand); BigDecimal decimal = (BigDecimal) format.parse ("- $ 1.000,57"); assertEquals (-1000,57, decimal.doubleValue (), 0,000001);

Svarende til Double.valueOf, det DecimalFormat.parse metode returnerer a Nummer, som vi kan konvertere til en primitiv dobbelt bruger dobbeltværdi metode. Derudover bruger vi setParseBigDecimal metode til at tvinge DecimalFormat.parse at returnere en BigDecimal.

Normalt Decimalformat er mere avanceret, end vi kræver, så vi bør favorisere Double.parseDouble eller den Double.valueOf i stedet.

For at lære mere om Decimalformat, tjek en praktisk guide til Decimalformat.

5. Ugyldige konverteringer

Java giver en ensartet grænseflade til håndtering af ugyldigt tal Snors.

Især Double.parseDouble, Double.valueOfog DecimalFormat.parse smide en NullPointerException når vi passerer nul.

Ligeledes, Double.parseDouble og Double.valueOf smide en NumberFormatException når vi passerer en ugyldig streng, der ikke kan parses til en dobbelt (såsom &).

Endelig DecimalFormat.parse kaster en ParseException når vi passerer en ugyldig Snor.

6. Undgå forældede konverteringer

Før Java 9 kunne vi oprette en boks Dobbelt fra en Snor ved at starte en Dobbelt:

ny dobbelt ("1.23");

Fra og med version 9 udfasede Java officielt denne metode.

7. Konklusion

Afslutningsvis giver Java os flere metoder til konvertering Snors ind i dobbelt værdier.

Generelt anbefaler vi at bruge Double.parseDouble medmindre en boks Dobbelt er nødvendig.

Kildekoden til denne artikel, herunder eksempler, kan findes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found