Olá, apenas por curiosidade, por que eu não consigo fazer o Type Casting de String para Double? É possível converter de alguma outra forma?
String nome = "Andre";
double idade = (double) nome;
Olá, apenas por curiosidade, por que eu não consigo fazer o Type Casting de String para Double? É possível converter de alguma outra forma?
String nome = "Andre";
double idade = (double) nome;
Oi Andre, tudo bem?
O Type Casting só funciona com tipos primitivos, e em Java a String
é um objeto, por isso ocorre um erro de incompatibilidade.
Claro, existe uma forma de converter String
para double
, utilizando um método/função da classe Double
. Quando entrarmos em Orientação a Objetos, veremos que algumas classes presentes no Java nos oferecem diversas funcionalidades que facilitarão muito nossa vida, tornando coisas como a conversão de um objeto para um tipo primitivo possíveis! Claro, tudo isso será visto com mais detalhes futuramente e ficará claro que por baixo dos panos as coisas funcionam de maneira bem mais interessante.
Mas voltando ao assunto, só dando um spoiler de como essa conversão vai funcionar. Temos um texto
do tipo String
e queremos transformar ele em um double
, e usamos o Double.parseDouble()
para fazer essa conversão:
String texto = "3.14";
double valor = Double.parseDouble(texto);
Mas perceba que para que essa conversão funcione, precisamos que dentro de String texto
tenha um valor com formato válido para que ele possa ser guardado dentro de um double
. No nosso caso, precisamos que o texto tenha um número escrito nele(3.14
no exemplo), já que converter um nome, como "Andre"
, em um double
é impossível pois o double
só é capaz de armazenar números dentro dele.
Espero ter ajudado, qualquer dúvida é só avisar!
Bons estudos!!