I den här handledningen får vi veta hur man konverterar Java-sträng till dubbel datatyp:

Vi lär oss att använda följande metoder för att konvertera strängar till dubbelvärden i Java:

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • ny Double(String s)

Metoder för att konvertera Java String till dubbel

Det finns vissa scenarier där vi i vårt Java-program måste utföra någon form av aritmetiska operationer på ett numeriskt värde, t.ex. beräkna räkningen, beräkna räntan på insättningsbeloppet etc. Men indata för det här programmet är tillgänglig i textformat, dvs. Java String-datatyp .

Till exempel, för att beräkna maträkningar - produktpriset och antalet köpta enheter kommer som en inmatning från textfältet på en webbsida eller ett textområde på en webbsida i textformat, dvs. Java String-datatypen. I sådana scenarier måste vi först konvertera denna String till siffror i Java primitiv datatyp double .

Låt oss se de olika metoderna en efter en i detalj.

#1) Metoden Double.parseDouble()

Metoden parseDouble() tillhandahålls av klassen Double. Double-klassen kallas Wrapper-klass eftersom den omsluter värdet av den primitiva typen double i ett objekt.

Vi tar en titt på metodsignaturen nedan:

public static double parseDouble(String str) throws NumberFormatException

Detta är en statisk metod i klassen Double som returnerar en dubbel datatyp som representeras av den angivna strängen.

Här kan 'str' är en sträng som innehåller det dubbelvärde som ska analyseras och returnerar det dubbelvärde som representeras av argumentet.

Den här metoden skapar ett undantag NumberFormatException när strängen inte innehåller en tolkbar dubbel.

Till exempel, Låt oss tänka på ett scenario där vi vill beräkna priset efter att ha fått en rabatt på det ursprungliga priset för varorna.

Ingångsvärdena, t.ex. det ursprungliga priset för objektet och rabatten, kommer från ditt faktureringssystem som text och vi vill utföra en aritmetisk operation på dessa värden för att beräkna det nya priset efter att ha dragit av rabatten från det ursprungliga priset.

Låt oss se hur du använder metoden Double.parseDouble() för att omvandla ett strängvärde till ett dubbelvärde i följande exempelkod:

 package com.softwaretestinghelp; /** * Den här klassen visar exempelkod för att konvertera sträng till dubbelprogram * med hjälp av metoden Double.parseDouble() * * * @author * * */ public class StringToDoubleDemo1 { public static void main(String[] args) { // Tilldela "500.00" till String-variabeln originalPriceStr String originalPriceStr = "50.00D"; // Tilldela "30" till String-variabeln originalPriceStr StringdiscountStr = "+30.0005d"; System.out.println("originalPriceStr : "+originalPriceStr); System.out.println("discountStr : "+discountStr); // Skicka originalPriceStr, dvs. strängen "50.00D" som en parameter till parseDouble() // för att konvertera strängen 'originalPriceStr' till en dubbel // och tilldela den till dubbelvariabeln originalPrice double originalPrice double originalPrice = Double.parseDouble(originalPriceStr); // Skicka discountStrdvs. strängen "30.005d" som parameter till parseDouble() // för att konvertera strängen 'discountStr' till dubbelvärde // och tilldela det till dubbelvariabeln discount double discount = Double.parseDouble(discountStr); System.out.println("Välkomna, vårt ursprungliga pris är : $"+originalPrice+""); System.out.println("Vi erbjuder rabatt : "+discount+"%"); //beräkna det nya priset efter rabatt double newPrice =originalpris - ((originalpris*rabatt)/100); //Avskriva det nya priset efter rabatten på konsolen System.out.println("Njut av det nya attraktiva priset efter rabatten: $"+newPrice+""); } } 

Här är programmets utdata:

originalPriceStr :50.00D

rabattStr :+30.0005d

Välkommen, vårt ursprungliga pris är: $50.0

Vi erbjuder rabatt :30.0005%

Njut av ett nytt attraktivt pris efter rabatt: $34.99975

Här är String "50.00D" där D anger att String är ett dubbelvärde.

 String originalPriceStr = "50.00D"; 

Denna originalPriceStr, dvs. "50.00D", skickas som en parameter till parseDouble() metoden och värdet tilldelas dubbelvariabeln originalPrice.

 double originalPrice = Double.  parseDouble  (originalPriceStr); 

Med metoden parseDouble() konverteras Stringvärdet till dubbelvärde och "+" eller "-" och "D", "d" tas bort.

När vi skriver ut originalPrice på konsolen:

 System.  ut  .println("Välkommen, vårt ursprungliga pris är: $"+originalPrice+""); 

Följande utdata visas på konsolen:

Välkommen, vårt ursprungliga pris är: $50.0

På samma sätt för String discountStr = "+30.0005d"; String "+30.0005d" kan konverteras till dubbel med hjälp av parseDouble() metoden som:

 double discount = Double.  parseDouble  (discountStr); 

När vi skriver ut rabatt på konsolen.

 System.out.println("Vi erbjuder rabatt: "+rabatt+"%"); 

Följande utdata visas på konsolen:

 Vi erbjuder rabatt :30.0005% 

Dessutom utförs aritmetiska operationer på dessa numeriska värden i programmet.

#2) Metoden Double.valueOf()

valueOf() tillhandahålls av den omslutande klassen Double.

Vi tar en titt på metodsignaturen nedan:

public static Double valueOf(String str) kastar NumberFormatException

Den här statiska metoden returnerar objektet av datatypen Double med det dubbelvärde som representeras av den angivna strängen str.

Här är parametern "str" en sträng som innehåller den dubbelrepresentation som ska analyseras och returnerar det dubbelvärde som representeras av argumentet i decimaltal.

Den här metoden skapar ett undantag NumberFormatException när strängen inte innehåller ett numeriskt värde som kan analyseras.

Låt oss försöka förstå hur man använder metoden Double.valueOf() med hjälp av följande exempelprogram:

 package com.softwaretestinghelp; /** * Den här klassen demonstrerar exempelkod för att konvertera sträng till dubbelt java-program * med hjälp av metoden Double.valueOf() * * * @author * * */ public class StringToDoubleDemo2 { public static void main(String[] args) { // Tilldela "1000.0000d" till strängvariabel depositAmountSträng String depositAmountSträng = "1000.0000d"; // Tilldela "5.00D" till strängvariabel interestRate StringinterestRateStr = "+5.00D"; // Tilldela "2" till strängvariabeln yearsStr String yearsStr String yearsStr = "2"; System.out.println("depositAmountStr : "+depositAmountStr); System.out.println("interestRateStr : "+interestRateStr); System.out.println("yearsStr : "+yearsStr); // Överlämna depositAmountStr, dvs. strängen "1000.0000d", som parameter till valueOf() // för att konvertera strängen 'depositAmountStr' värde till dubbel // och tilldelatill dubbelvariabeln depositAmount Double depositAmount = Double.valueOf(depositAmountStr); // Pass interestRateStr dvs. strängen "5.00D" som parameter till valueOf() // för att konvertera strängen "interestRateStr" till dubbelvärde // och tilldela den till dubbelvariabeln discount Double interestRate = Double.valueOf(interestRateStr); // Pass yearsStr dvs. strängen "2" som parameter till valueOf() // för att konvertera strängen'yearsStr'-värdet till dubbel // och tilldela det till dubbelvariabel rabatt Double years = Double.valueOf(yearsStr); System.out.println("Välkommen till ABC Bank. Tack för att du sätter in : $"+ depositAmount+" i vår bank"); System.out.println("Vår bank erbjuder en attraktiv ränta för 1 år : "+interestRate+"%"); /Beräkna ränta efter 2 år på insättningsbeloppet Double interestEarned =((depositAmount*interestRate*years)/100); System.out.println("Den totala räntan efter "+år+" är $"+interestEarned+""); } } 

Här är programmets utdata:

depositAmountStr :1000.0000d

interestRateStr :+5.00D

årStr :2

Välkommen till ABC Bank. Tack för din insättning: $1000.0 i vår bank.

Vår bank erbjuder en attraktiv ränta för 1 år :5,0 %.

Den totala räntan efter 2.0 är 100,0 dollar.

Här tilldelar vi värden till String-variabler:

 String depositAmountStr = "1000.0000d"; String interestRateStr = "+5.00D"; String yearsStr = "2"; 

Använd metoden valueOf() för att konvertera dessa värden till Double enligt nedan.

 Double depositAmount = Double.  valueOf  (depositAmountStr); 

Vi använder samma värden för ytterligare aritmetiska beräkningar som:

 Double interestEarned = ((depositAmount*interestRate*years)/100); 

#3) DecimalFormat Parse () Metod

För detta hämtar vi först klassinstansen NumberFormat och använder parse()-metoden för NumberFormat-klassen.

Låt oss ta en titt på metodsignaturen nedan:

public Number parse(String str) kastar ParseException

Den här metoden analyserar den angivna texten. Den använder en sträng från startpositionen och returnerar numret.

Den här metoden skapar ett undantag ParseException om strängens början inte finns i en tolkningsbar text.

Låt oss se exempelprogrammet nedan. Denna exempelkod analyserar en formaterad textsträng som innehåller ett dubbelvärde med hjälp av metoden parse():

 package com.softwaretestinghelp; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.ParseException; /** * Den här klassen demonstrerar exempelkod för att konvertera sträng till dubbelt java-program * med hjälp av DecimalFormat parse ()-metoden * * * * @author * */ public class StringToDoubleDemo3 { public static void main(String [] args) throws ParseException { // Tilldela "5,000,00.00" till Stringvariabel pointsString String pointsString = "5,000,00.00"; System.out.println("pointsString : "+pointsString); // Överlämna pointsString, dvs. strängen "+5,000,00.00", som en parameter till // DecimalFormat.getNumberInstance(). parse()-metoden // för att omvandla strängens pointsString-värde till dubbelvärde // och tilldela det till dubbelvariabeln points NumberFormat num = DecimalFormat.getNumberInstance(); Number pointsNum =num.parse(pointsString); double points = pointsNum.doubleValue(); System.out.println("Grattis! Du har fått : "+points+" poäng!"); } } 

Här är programmets utdata:

poängString :5,000,00.00

Grattis! Du har tjänat :500000.0 poäng!

Här tilldelas den formaterade texten till strängvariabeln på följande sätt:

 String pointsString = "5,000,00.00"; 

Den formaterade texten "5 000 00,00.00" skickas som ett argument till metoden num.parse().

Innan dess skapas en klassinstans av NumberFormat med hjälp av DecimalFormat. getNumberInstance () metod.

 Metoden DecimalFormat.getNumberInstance(): NumberFormat num = DecimalFormat.getNumberInstance(); Number pointsNum = num.parse(pointsString); 

Dubbelvärdet hämtas alltså genom att anropa metoden doubleValue () enligt nedan.

 double points = pointsNum.doubleValue(); 

#4) New Double() Konstruktör

Ett annat sätt att konvertera Java String till Double är att använda en Double-klass konstruktör(String str)

public Double(String str) kastar NumberFormatException

Den här konstruktören konstruerar och returnerar ett Double-objekt med värdet av dubbeltyp som representeras av den angivna strängen.

str är en sträng som ska konverteras till Double

Den här metoden skapar ett undantag som kallas NumberFormatException om strängen inte har ett tolkningsbart numeriskt värde.

Låt oss försöka förstå hur man använder konstruktören Double (String str) med hjälp av följande exempelprogram som beräknar cirkelns area genom att konvertera radien till Double från String först.

 package com.softwaretestinghelp; /** * Den här klassen demonstrerar exempelkod för att konvertera sträng till dubbelprogram i java * med hjälp av den nya konstruktören Double(String str) * * * @author * * */ public class StringToDoubleDemo4 { public static void main(String[] args) { // Tilldela "+15.0005d" till strängvariabeln radiusStr String radiusStr = "+15.0005d"; System.out.println("radiusStr : "+radiusStr); // Passa radiusStrdvs. strängen "+15.0005d" som parameter till new Double() // för att konvertera strängen radiusStr-värdet till dubbelvärde // och tilldela det till dubbelvariabeln radius double radius double radius =  ny  Dubbel  (radiusStr)  .doubleValue(); System.out.println("Cirkelns radie : "+radius+" cm"); /Beräkna cirkelns area double area = (3,14*(radie*radius)); System.out.println("Cirkelns area : "+area+" cm"); } } 

Här är programmets utdata:

radiusStr :+15.0005d

Cirkelns radie :15.0005 cm

Cirkelns area :706.5471007850001 cm

I programmet ovan tilldelas värdet för cirkelns radie till variabeln String:

 String radiusStr = "+15.0005d"; 

För att beräkna cirkelns area omvandlas radien till ett dubbelvärde med hjälp av konstruktören Double() som returnerar värdet av datatypen Double. Sedan åberopas metoden doubleValue() för att hämta värdet av primitiv datatyp double enligt nedan.

 dubbel radie =  ny  Dubbel (radiusStr).doubleValue(); 

Observera: Konstruktören Double(String str) är föråldrad sedan Java 9.0. Det är anledningen till att Double är överstruken i ovanstående uttalande.

Därför är detta sätt mindre populärt nu. Vi har alltså täckt alla metoder för att konvertera en Java String till en dubbel primitiv Java-datatyp.

Låt oss ta en titt på några av de vanligaste frågorna om konverteringsmetoden från sträng till dubbel.

Ofta ställda frågor

F #1) Kan vi konvertera sträng till dubbel i Java?

Svar: Ja , I Java kan konverteringen från sträng till dubbel göras med hjälp av följande metoder i Java-klassen:

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • ny Double(String s)

F #2) Hur gör man en sträng till en dubbel?

Svar: Java erbjuder olika metoder för att omvandla en sträng till en dubbel.

Nedan finns metoderna för Java-klasser:

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • ny Double(String s)

F #3) Finns dubbel i Java?

Svar: Ja . Java tillhandahåller olika primitiva datatyper för att lagra numeriska värden som short, int, double etc. double är en primitiv Java-datatyp för att representera ett flyttal. Denna datatyp tar 8 byte för lagring och har 64-bitars flyttalsprecision. Denna datatyp är ett vanligt val för att representera decimalvärden.

Q #4) Vad är Scanner i Java?

Svar: Java tillhandahåller klassen java.util.Scanner för att få in data från en användare. Den har olika metoder för att få in data i olika datatyper. Till exempel, nextLine() används för att läsa värdet av datatypen String. För att läsa värdet av datatypen double finns metoden nextDouble().

Slutsats

I den här handledningen har vi sett hur man konverterar strängdatatyp till primitiv datatyp double i Java med hjälp av följande klassmetoder och enkla exempel.

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • ny Double(String s)
Scrolla till toppen