En ĉi tiu lernilo, ni ekkonos kiel konverti Java-ĉenon al duobla datumtipo:

Ni lernos uzi la jenajn metodojn por konverti ŝnuron al duobla. valoro en Java:

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • nova Duobla(String s)

Metodoj Por Konverti Java Ŝnuron Al duobligi

Estas certaj scenaroj kie, en nia Java programo ni devas fari ian aritmetikajn operaciojn sur nombra valoro kiel kalkuli la fakturon, kalkuli interezon sur la deponaĵsumo, ktp. Sed la enigo por ĉi tiu programo estas disponebla. en la tekstoformato t.e. Java String-datumtipo .

Ekzemple, por kalkulado de nutraĵfakturoj – la produktoprezo kaj la nombro da aĉetitaj unuoj venas kiel enigo. de la teksta kampo de retpaĝo aŭ teksta areo de retpaĝo en la tekstformato t.e. Java String datumtipo. En tiaj scenaroj, ni unue devas konverti ĉi tiun Ŝnuron por retrovi nombrojn en Java primitiva datumtipo duobla .

Ni vidu la diversajn metodojn unu post la alia detale.

#1) Double.parseDouble() Metodo

parseDouble() metodo estas provizita de la klaso Double. La klaso Double nomiĝas la klaso Wrapper ĉar ĝi envolvas la valoron de la primitiva tipo double en objekto.

Ni rigardu la metodon subskribon.sub:

publika statika duobla analizoDouble(String str) ĵetas NumberFormatException

Ĉi tio estas senmova metodo sur klaso Double kiu resendas duoblan datumtipon reprezentitan per la specifita Ŝnuro.

Ĉi tie, la parametro 'str' estas Ŝnuro enhavanta la duoblan valoran reprezenton analizon kaj redonas la duoblan valoron reprezentitan per la argumento.

Ĉi tio. metodo ĵetas Escepton NumberFormatException kiam la Ŝnuro ne enhavas analizeblan duoblon.

Ekzemple, ni konsideru scenaron kiam ni volas kalkuli la prezon post ricevo. rabato sur la origina prezo de la eroj.

Por tio, la enigvaloroj kiel la origina prezo de la objekto kaj rabato venas de via faktura sistemo kiel teksto kaj ni volas fari aritmetikan operacion sur ĉi tiuj valoroj. por kalkuli la novan prezon post deduktado de la rabato de la originala prezo.

Ni vidu kiel uzi Double.parseDouble()-metodon por analizi String-valoron por duobligi en la jena ekzempla kodo:

package com.softwaretestinghelp; /** * This class demonstrates sample code to convert string to double java program * using Double.parseDouble() method * * @author * */ public class StringToDoubleDemo1 { public static void main(String[] args) { // Assign "500.00" to String variable originalPriceStr String originalPriceStr = "50.00D"; // Assign "30" to String variable originalPriceStr String discountStr = "+30.0005d"; System.out.println("originalPriceStr :"+originalPriceStr); System.out.println("discountStr :"+discountStr); // Pass originalPriceStr i.e. String “50.00D” as a parameter to parseDouble() // to convert string 'originalPriceStr' value to double // and assign it to double variable originalPrice double originalPrice = Double.parseDouble(originalPriceStr); // Pass discountStr i.e. String “30.005d” as a parameter to parseDouble() // to convert string 'discountStr' value to double // and assign it to double variable discount double discount = Double.parseDouble(discountStr); System.out.println("Welcome, our original price is : $"+originalPrice+""); System.out.println("We are offering discount :"+discount+"%"); //Calculate new price after discount double newPrice = originalPrice - ((originalPrice*discount)/100); //Print new price after getting discount on the console System.out.println("Enjoy new attractive price after discount: $"+newPrice+""); } } 

Jen la programo Eligo:

originalPriceStr :50.00D

discountStr :+30.0005d

Bonvenon, nia originala prezo is : $50.0

Ni proponas rabaton :30.0005%

Ĝuu novan allogan prezon post rabato : $34.99975

Ĉi tie, String estas “50.00D” en kiu D indikas ĉenon kiel duobla valoro.

String originalPriceStr = "50.00D";

Ĉi tiu originalaPriceStr t.e. “50.00D” estaspasita kiel parametro al parseDouble()-metodo kaj la valoro estas asignita al duobla variablo originalPrice.

double originalPrice = Double.parseDouble(originalPriceStr);

parseDouble()-metodo konvertas String-valoron al duoblo kaj forigas “+” aŭ “-“ kaj 'D',' d'.

Tial, kiam ni presas originalPrice sur la konzolo:

System.out.println("Welcome, our original price is : $"+originalPrice+"");

La jena eligo aperos sur la konzolo:

Bonvenon, nia originala prezo estas : $50.0

Simile, por String discountStr = “+30.0005d”; Ĉeno "+30.0005d" povas esti konvertita al duoblo uzante parseDouble() metodon kiel:

double discount = Double.parseDouble(discountStr);

Tial, kiam ni presas rabaton sur la konzolo.

System.out.println("We are offering discount :"+discount+"%");

La sekva eligo estos montrata sur la console:

We are offering discount :30.0005%

Krome, aritmetikaj operacioj estas faritaj sur ĉi tiuj nombraj valoroj en la programo.

#2) Double.valueOf() Metodo

valueOf()-metodo estas provizita. de la envolvaĵklaso Double.

Ni rigardu la metodon subskribon sube:

publika statika Double valueOf(String str) ĵetas NumberFormatException

Ĉi tiu senmova metodo liveras la objekton de datumtipo Double havanta la duoblan valoron kiu estas reprezentita per la specifita String str.

Ĉi tie, la parametro 'str' estas String enhavanta la duoblan reprezenton al esti analizita kaj redonas la Duoblan valoron reprezentitan per la argumento en decimala.

Ĉi tiu metodo ĵetas Escepton NumberFormatException kiam la Ŝnuro ne enhavas numeran valoron kiu povas estianalizita.

Ni provu kompreni kiel uzi ĉi tiun metodon Double.valueOf() helpe de la sekva ekzempla programo:

package com.softwaretestinghelp; /** * This class demonstrates sample code to convert string to double java program * using Double.valueOf() method * * @author * */ public class StringToDoubleDemo2 { public static void main(String[] args) { // Assign "1000.0000d" to String variable depositAmountStr String depositAmountStr = "1000.0000d"; // Assign "5.00D" to String variable interestRate String interestRateStr = "+5.00D"; // Assign "2" to String variable yearsStr String yearsStr = "2"; System.out.println("depositAmountStr :"+depositAmountStr); System.out.println("interestRateStr :"+interestRateStr); System.out.println("yearsStr :"+yearsStr); // Pass depositAmountStr i.e.String “1000.0000d” as a parameter to valueOf() // to convert string 'depositAmountStr' value to double // and assign it to double variable depositAmount Double depositAmount = Double.valueOf(depositAmountStr); // Pass interestRateStr i.e.String “5.00D” as a parameter to valueOf() // to convert string 'interestRateStr' value to double // and assign it to double variable discount Double interestRate = Double.valueOf(interestRateStr); // Pass yearsStr i.e.String “2” as a parameter to valueOf() // to convert string 'yearsStr' value to double // and assign it to double variable discount Double years = Double.valueOf(yearsStr); System.out.println("Welcome to ABC Bank. Thanks for depositing : $"+ depositAmount+" with our bank"); System.out.println("Our bank is offering attractive interest rate for 1 year :"+interestRate+"%"); //Calculate interest after 2 years on the deposit amount Double interestEarned = ((depositAmount*interestRate*years)/100); System.out.println("You will be receiving total interest after "+years+" is $"+interestEarned+""); } }

Jen estas la programo Eligo:

depositAmountStr :1000.0000d

interestRateStr :+5.00D

jarojStr :2

Bonvenon al ABC-Banko. Dankon pro deponado : $1000.0 ĉe nia banko

Nia banko ofertas allogan interezoprocenton por 1 jaro :5.0%

Vi ricevos totalan intereson post 2.0 estas $100.0

Ĉi tie, ni atribuas valorojn al String-variabloj:

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

Uzu la metodon valueOf() por konverti ĉi tiujn valorojn al Double kiel montrite sube.

Double depositAmount = Double.valueOf(depositAmountStr);

Ni uzas la samaj valoroj por plia aritmetika kalkulo kiel:

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

#3) DecimalFormat Parse () Metodo

Por tio, ni unue reakiras la NumberFormat klasokazaĵon kaj uzas la parse() metodon de la klaso NumberFormat.

Ni rigardu la metodon subskribon sube:

publika Number parse(String str) throws ParseException

Ĉi tiu metodo analizas la specifitan tekston. Ĉi tio uzas ĉenon de la komenca pozicio kaj resendas la nombron.

Ĉi tiu metodo ĵetas Escepton ParseException se la komenco de String ne estas en analizebla.

Ni vidu la specimenan programon sube. Ĉi tiu ekzempla kodo analizas formatitan tekstĉenon enhavantan duoblan valoron per la metodo parse():

package com.softwaretestinghelp; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.ParseException; /** * This class demonstrates sample code to convert string to double java program * using DecimalFormat parse () method * * @author * */ public class StringToDoubleDemo3 { public static void main(String [] args) throws ParseException { // Assign "5,000,00.00" to String variable pointsString String pointsString = "5,000,00.00"; System.out.println("pointsString :"+pointsString); // Pass pointsString i.e. String “+5,000,00.00” as a parameter to // DecimalFormat.getNumberInstance(). parse() method // to convert string pointsString value to double // and assign it to double variable points NumberFormat num = DecimalFormat.getNumberInstance(); Number pointsNum = num.parse(pointsString); double points = pointsNum.doubleValue(); System.out.println("Congratulations ! You have earned :"+points+" points!"); } } 

Jen la programo Eligo:

pointsString:5,000,00.00

Gratulon ! Vi gajnis :500000.0 poentojn!

Ĉi tie, la formatita teksto estas asignita al la ĉenvariablo jene:

String pointsString = "5,000,00.00";

Ĉi tiu formatita teksto “5,000,00.00” estas preterpasita. kiel argumento al la metodo num.parse().

Antaŭ ol tiu kazo de la klaso NumberFormat estas kreita per la DecimalFormat. getNumberInstance () metodo.

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

Do, duoble valoro estas prenita per alvoko de doubleValue () metodo kiel montrite sube.

double points = pointsNum.doubleValue();

#4) New Double() Constructor

Unu plia maniero konverti Java String al duoblo estas uzi Double-klaskonstruilon( String str)

public Double(String str) ĵetas NumberFormatException

Tiu konstrukciisto konstruas kaj resendas Double-objekton havantan la valoron de duobla tipo reprezentita per String specifita.

str estas ĉeno por konvertiĝo al Double

Ĉi tiu metodo ĵetas escepton nomitan NumberFormatException se la String ne havas analizeblan numeran valoron.

Ni provu kompreni kiel uzi ĉi tiun Double (String str) konstrukciilon helpe de la sekva ekzempla programo kiu kalkulas la areon de la cirklo konvertante radiuson al duoblo de String unue.

package com.softwaretestinghelp; /** * This class demonstrates sample code to convert string to double java program * using new Double(String str) constructor * * @author * */ public class StringToDoubleDemo4 { public static void main(String[] args) { // Assign "+15.0005d" to String variable radiusStr String radiusStr = "+15.0005d"; System.out.println("radiusStr :"+radiusStr); // Pass radiusStr i.e.String “+15.0005d” as a parameter to new Double() // to convert string radiusStr value to double // and assign it to double variable radius double radius = newDouble(radiusStr).doubleValue(); System.out.println("Radius of circle :"+radius+" cm"); //Calculate area of circle double area = (3.14*(radius*radius)); System.out.println("Area of circle :"+area+" cm"); } }

Jen la programo Eligo:

radiusStr :+15,0005d

Radio de cirklo :15,0005 cm

Areo de cirklo :706,5471007850001 cm

En la ĉi-supra programo, radiusvaloro de la cirklo estas asignita alStringvariablo:

String radiusStr = "+15.0005d";

Por kalkuli la areon de la cirklo, radiuso estas konvertita al duobla valoro uzante la Double() konstrukciisto kiu resendas Double datumtipvaloron. Tiam la metodo doubleValue() estas alvokita por retrovi la valoron de primitiva dato-tipo double kiel montrite sube.

double radius = new Double (radiusStr).doubleValue();

Noto: Double(String str) konstrukciisto estas malrekomendita ekde Java 9.0. Tio estas la kialo, pro kiu Double estas barita en la ĉi-supra deklaro.

Tial ĉi tiu maniero estas malpli preferata nun. Tiel, ni kovris ĉiujn metodojn por konverti Java String al duobla Java primitiva datumtipo.

Ni rigardu sekvante kelkajn el la oftaj demandoj pri la Ŝnuro al duobla konverta metodo.

Oftaj Demandoj

Q #1) Ĉu ni povas konverti ĉenon al duoblo en Java?

Respondo: Jes , en Java, Ŝnuro al duobla konvertiĝo povas esti farita per la sekvaj Java klasmetodoj:

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • nova Duobla(String s)

Q #2) Kiel oni igas ŝnuron en duoblon?

Respondo: Java provizas diversajn metodojn por igi ŝnuron en duoblon.

Sube estas donitaj la Java klasmetodoj:

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

Q #3) Ĉu duoblo estas en Java?

Respondo: Jes . Java provizas diversajn primitivajn datumtipojn por stoki nombrajn valorojn kiel short, int, double, ktp. double estas Java primitiva datumtipo por reprezenti glitkoman nombron. Ĉi tiu datumtipo prenas 8 bajtojn por stokado havanta 64-bitan glitkoman precizecon. Ĉi tiu datumtipo estas ofta elekto por reprezenti dekumajn valorojn.

Q #4) Kio estas Skanilo en Java?

Respondo: Java provizas java.util.Scanner-klason por ricevi enigon de uzanto. Ĝi havas diversajn metodojn por akiri enigon en malsamaj datumtipoj. Ekzemplo, nextLine() estas uzata por legi la valoron de datumtipo String. Por legi duoblan datumvaloron, ĝi disponigas la metodon nextDouble() .

Konkludo

En ĉi tiu lernilo, ni vidis kiel konverti String-datumtipo al primitiva datumtipo double en Java uzante la sekvan klason metodoj kune kun simplaj ekzemploj.

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • new Duobla(String s)
Rulumi supren