Como Converter string para Dobrar em Java
-
Double.parseDouble()
Método para converter uma string em um duplo -
Double.valueOf()
Método para converter uma string para o dobro -
DecimalFormat.parse
para Converter uma String em um Duplo -
Manusear
NumberFormatException
enquanto converte um valor de string para um valor duplo
Introduziremos diferentes maneiras de converter a string dada em um duplo em Java com alguns exemplos fáceis de entender.
Double.parseDouble()
Método para converter uma string em um duplo
A melhor e mais fácil maneira de lançar uma string para dobrar em Java é utilizando o método estático parseDouble
da classe Double
.
O Double.parseDouble
retorna um tipo primitivo.
public class Main {
public static void main(String[] args) {
String stringValue = "12.34";
double doubleValue = Double.parseDouble(stringValue);
System.out.println("Converted value: " + doubleValue);
}
}
Resultado:
Converted value: 12.34
Pode ser um valor negativo ou positivo na string; este método analisará a string para double
corretamente.
public class Main {
public static void main(String[] args) {
String stringValueNegative = "-12.34";
String stringValuePositive = "+12.34";
double doubleValueNegative = Double.parseDouble(stringValueNegative);
double doubleValuePositive = Double.parseDouble(stringValuePositive);
System.out.println("Converted negative value: " + doubleValueNegative);
System.out.println("Converted positive value: " + doubleValuePositive);
}
}
Resultado:
Converted negative value: -12.34
Converted positive value: 12.34
Double.valueOf()
Método para converter uma string para o dobro
Quando precisamos de um objeto Double
em vez de um objeto do tipo primitivo duplo, podemos utilizar o método Double.valueOf
para obter um valor duplo de objeto de uma string.
public class Main {
public static void main(String[] args) {
String stringValueNegative = "-12.08d";
String stringValuePositive = "+12.3400";
Double doubleValueNegative = Double.valueOf(stringValueNegative);
Double doubleValuePositive = Double.valueOf(stringValuePositive);
System.out.println(doubleValueNegative);
System.out.println(doubleValuePositive);
}
}
Resultado:
-12.08
12.34
DecimalFormat.parse
para Converter uma String em um Duplo
Se o valor que desejamos é algo como 1,11,111.12d
, podemos utilizar a classe DecimalFormat
para analisar a string a um doubleValue()
.
Mas como a classe DecimalFormat
pode retornar valores diferentes como int
ou byte
, é necessário fazer todas as operações no bloco try-catch
. E como desejamos um valor duplo, temos que utilizar o método de doubleValue()
para obter definitivamente o tipo double
.
import java.text.DecimalFormat;
import java.text.ParseException;
public class Main {
public static void main(String[] args) {
String stringValue = "1,11,111.12d";
try {
double doubleValue = DecimalFormat.getNumberInstance().parse(stringValue).doubleValue();
System.out.println(doubleValue);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Resultado:
111111.12
Manusear NumberFormatException
enquanto converte um valor de string para um valor duplo
Às vezes podemos obter NumberFormatException
. Isso acontece porque o valor da string não é um valor duplo válido.
Para deixar isso mais claro, veremos um exemplo simples que lança essa exceção.
public class Main {
public static void main(String[] args) {}
String stringValue = "1,11";
double d = Double.parseDouble(stringValue);
System.out.println(d);
}
}
Resultado:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1,11"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.base/java.lang.Double.parseDouble(Double.java:543)
at com.company.Main.main(Main.java:14)
A exceção acontece porque 1,11
não é um valor duplo válido. A solução para este erro é substituir a vírgula por um ponto decimal, como estamos fazendo abaixo.
public class Main {
public static void main(String[] args) {
String stringValue = "1,11";
double d = Double.parseDouble(stringValue.replace(",", "."));
System.out.println(d);
}
}
Resultado:
1.11
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtigo relacionado - Java Double
- Converter Int para Double em Java
- Tipo de dados flutuante e duplo em Java
- Converter Double to String em Java
- Converter duplo em flutuante em Java
- Truncar duplo em Java
- Converter Double to Int em Java