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.parsepara Converter uma String em um Duplo
- 
          
            Manusear NumberFormatExceptionenquanto 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
