Neste titorial, coñeceremos como converter unha cadea de Java en tipo de datos dobre:

Aprenderemos a utilizar os seguintes métodos para converter unha cadea en dobre valor en Java:

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

Métodos para converter a cadea Java en double

Hai certos escenarios nos que, no noso programa Java temos que realizar algún tipo de operacións aritméticas sobre un valor numérico como calcular a factura, calcular os intereses sobre o importe do depósito, etc. Pero a entrada para este programa está dispoñible. no formato de texto, é dicir, Tipo de datos Java String .

Por exemplo, para calcular as facturas de comestibles: o prezo do produto e o número de unidades compradas veñen como entrada desde o campo de texto dunha páxina web ou unha área de texto dunha páxina web en formato de texto, é dicir, o tipo de datos Java String. En tales escenarios, primeiro temos que converter esta cadea para recuperar números en Tipo de datos primitivo Java double .

Vexamos os distintos métodos un por un en detalle.

#1) Método Double.parseDouble()

O método parseDouble() é proporcionado pola clase Double. A clase Double chámase clase Wrapper xa que envolve o valor do tipo primitivo double nun obxecto.

Vexamos a sinatura do método.a continuación:

público static double parseDouble(String str) lanza NumberFormatException

Este é un método estático na clase Double que devolve un tipo de datos dobre representado polo Cadea especificada.

Aquí, o parámetro 'str' é unha cadea que contén a representación do valor dobre que se vai analizar e devolve o valor dobre representado polo argumento.

Este método lanza unha excepción NumberFormatException cando a cadea non contén un dobre analizable.

Por exemplo, consideremos un escenario no que queremos calcular o prezo despois de recibir un desconto sobre o prezo orixinal dos artigos.

Para iso, os valores introducidos como o prezo orixinal do artigo e o desconto proceden do teu sistema de facturación como texto e queremos realizar unha operación aritmética sobre estes valores. para calcular o novo prezo despois de deducir o desconto do prezo orixinal.

Vexamos como usar o método Double.parseDouble() para analizar o valor da cadea para duplicar no seguinte código de mostra:

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+""); } } 

Aquí está o programa Saída:

originalPriceStr :50.00D

discountStr :+30.0005d

Benvido, o noso prezo orixinal é de : 50,0 $

Ofrecemos un desconto : 30,0005 %

Aproveita un novo prezo atractivo despois do desconto : 34,99975 $

Aquí, String é "50,00D" no que D indica a cadea como un valor dobre.

String originalPriceStr = "50.00D";

EstePriceStr orixinal, é dicir, “50.00D” épasou como parámetro ao método parseDouble() e o valor asígnase á variable double originalPrice.

double originalPrice = Double.parseDouble(originalPriceStr);

o método parseDouble() converte o valor String en double e elimina "+" ou "-" e "D". d'.

Por iso, cando imprimamos o prezo orixinal na consola:

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

O seguinte resultado amosarase na consola:

Benvido, o noso prezo orixinal é: $50,0

Do mesmo xeito, para String discountStr = "+30,0005d"; A cadea "+30.0005d" pódese converter en dobre usando o método parseDouble() como:

double discount = Double.parseDouble(discountStr);

Por iso, cando imprimamos o desconto na consola.

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

A seguinte saída mostrarase na pantalla. console:

We are offering discount :30.0005%

Ademais, no programa realízanse operacións aritméticas sobre estes valores numéricos.

#2) Método Double.valueOf()

Ofrece o método valueOf() pola clase de envoltura Double.

Vexamos a sinatura do método a continuación:

public static Double valueOf(String str) throws NumberFormatException

Este método estático devolve o obxecto do tipo de datos Double que ten o valor dobre representado pola cadea String especificada.

Aquí, o parámetro 'str' é unha cadea que contén a representación dobre para ser analizado e devolve o valor Double representado polo argumento en decimal.

Este método xera unha excepción NumberFormatException cando a cadea non contén un valor numérico que poida ser analizado.analizado.

Imos tentar entender como usar este método Double.valueOf() coa axuda do seguinte programa de exemplo:

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+""); } }

Aquí está o programa Saída:

depositAmountStr :1000,0000d

interestRateStr :+5,00D

yearsStr :2

Benvido a ABC Bank. Grazas por depositar: $1000.0 no noso banco

O noso banco ofrece unha taxa de interese atractiva durante 1 ano :5.0%

Recibirás o interese total despois de que 2.0 sexa $100.0

Aquí, estamos asignando valores ás variables String:

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

Utiliza o método valueOf() para converter estes valores en Double, como se mostra a continuación.

Double depositAmount = Double.valueOf(depositAmountStr);

Utilizamos os mesmos valores para cálculos aritméticos posteriores que:

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

#3) Método DecimalFormat Parse ()

Para iso, primeiro recuperamos a instancia da clase NumberFormat e usamos o método parse() da clase NumberFormat.

Démoslle unha ollada á sinatura do método a continuación:

public Number parse(String str) throws ParseException

Este método analiza o texto especificado. Isto usa unha cadea desde a posición inicial e devolve o número.

Este método xera unha excepción ParseException se o comezo da cadea non está nun analizable.

Vexamos o programa de mostra a continuación. Este código de mostra analiza a cadea de texto formateada que contén un valor dobre mediante o método 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!"); } } 

Aquí está o programa Saída:

pointsString:5,000,00,00

Parabéns! Gañou :500000,0 puntos!

Aquí, o texto con formato asígnase á variable de cadea do seguinte xeito:

String pointsString = "5,000,00.00";

Este texto con formato "5,000,00,00" pásase como argumento para o método num.parse().

Antes de que se cree esa instancia da clase NumberFormat mediante o método DecimalFormat. getNumberInstance ()

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

Entón, dobre o valor obténse invocando o método doubleValue () como se mostra a continuación.

double points = pointsNum.doubleValue();

#4) Novo construtor Double()

Unha forma máis de converter Java String en double é usar un construtor de clase Double( String str)

public Double(String str) lanza NumberFormatException

Este construtor constrúe e devolve un obxecto Double que ten o valor do tipo double representado por String especificado.

str é unha cadea para converterse en Double

Este método lanza unha excepción chamada NumberFormatException se a cadea non ten un valor numérico analizable.

Imos tentar entender como usar este construtor Double (String str) coa axuda do seguinte programa de exemplo que calcula a área do círculo convertendo primeiro o raio en dobre desde String.

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"); } }

Aquí está o programa Saída:

radiusStr :+15,0005d

Raio do círculo :15,0005 cm

Área do círculo :706,5471007850001 cm

No programa anterior, asígnase o valor do raio do círculoVariable de cadea:

String radiusStr = "+15.0005d";

Para calcular a área do círculo, o raio convértese en valor dobre mediante o construtor Double() que devolve o valor do tipo de datos Double. Despois invócase o método doubleValue() para recuperar o valor do tipo de data primitivo double como se mostra a continuación.

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

Nota: O construtor Double(String str) está obsoleto desde Java 9.0. Esa é a razón pola que Double ten tachado na declaración anterior.

Por iso, agora é menos preferido este xeito. Así, cubrimos todos os métodos para converter unha cadea Java nun tipo de datos primitivo dobre Java.

Dámoslle unha ollada a seguir algunhas das preguntas máis frecuentes sobre o método de conversión String to double.

Preguntas máis frecuentes

P #1) ¿Podemos converter cadea en double en Java?

Resposta: Si , en Java, a conversión de cadea a dobre pódese facer mediante os seguintes métodos de clase Java:

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

Q #2) Como se converte unha cadea en dobre?

Resposta: Java ofrece varios métodos para converter unha cadea en dobre.

A continuación móstranse os métodos de clase Java:

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

P #3) É o dobre en Java?

Resposta: Si . Java ofrece varios tipos de datos primitivos para almacenar valores numéricos como short, int, double, etc. double é un tipo de datos primitivo de Java para representar un número de coma flotante. Este tipo de datos leva 8 bytes para o almacenamento cunha precisión de coma flotante de 64 bits. Este tipo de datos é unha opción común para representar valores decimais.

P #4) Que é Scanner en Java?

Resposta: Java proporciona a clase java.util.Scanner para obter a entrada dun usuario. Ten varios métodos para obter entrada en diferentes tipos de datos. Por exemplo, nextLine() úsase para ler o valor do tipo de datos String. Para ler o valor de datos dobres, proporciona o método nextDouble().

Conclusión

Neste titorial, vimos como converter o tipo de datos String nun tipo de datos primitivo double en Java usando a seguinte clase métodos xunto con exemplos sinxelos.

  • Double.parseDouble(String)
  • Double.valueOf(String)
  • DecimalFormat parse()
  • novo Dobre(Cadea s)
Desprazarse arriba