Pessoal estou tendo dificuldades em solucionar um probleminha de entrada de valores. Acontece o seguinte tenho um programa onde o usuário informa um valor numérico através de um JOptionPane, eu declarei a variável altura que recebe a string de dentro do JOptionPane como double e quando o usuário informa um valor como 1.8 beleza o programa funciona, mas quando ele digita 1,8 o programa dá o seguinte erro:
O programinha é bem simples para informar o peso ideal mediante o sexo e a altura da pessoa.
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
public class Calcula_Peso{
public static void main(String[] args){
String digitar, sexo = null;
double peso;
double alt;
DecimalFormat df= new DecimalFormat("0.00");
digitar = JOptionPane.showInputDialog("Digite a Altura");
alt = Double.parseDouble(digitar);
if (alt >= 0){
sexo = JOptionPane.showInputDialog("Digite o Sexo");
if ((sexo=="F") || (sexo=="f")){
peso=((62.1*alt)-44.7);
System.out.println("O Peso Ideal:" + " " + df.format(peso) + " " + "Kg");
}
if ((sexo.charAt(0)=='M') || (sexo.charAt(0)=='m')){
peso=(72.7*alt)-58;
System.out.println("O Peso Ideal:" + " " + df.format(peso) + " " + "Kg");
}
}else{
while (alt < 0){
digitar = JOptionPane.showInputDialog("Digite a Altura");
alt = Double.parseDouble(digitar);
}
sexo = JOptionPane.showInputDialog("Digite o Sexo");
if ((sexo.charAt(0)=='F') || (sexo.charAt(0)=='f')){
peso=((62.1*alt)-44.7);
System.out.println("O Peso Ideal:" + " " + df.format(peso) + " " + "Kg");
}
if ((sexo.charAt(0)=='M') || (sexo.charAt(0)=='m')){
peso=(72.7*alt)-58;
System.out.println("O Peso Ideal:" + " " + df.format(peso) + " " + "Kg");
}
}while (((sexo.charAt(0) != 'M') && (sexo.charAt(0) != 'm')) && ((sexo.charAt(0) != 'F') && (sexo.charAt(0) != 'f'))) {
sexo = JOptionPane.showInputDialog("Digite o Sexo");
}
if ((sexo.charAt(0)=='F') || (sexo.charAt(0)=='f')){
peso=((62.1*alt)-44.7);
System.out.println("O Peso Ideal:" + " " + df.format(peso) + " " + "Kg");
}
if ((sexo.charAt(0)=='M') || (sexo.charAt(0)=='m')){
peso=(72.7*alt)-58;
System.out.println("O Peso Ideal:" + " " + df.format(peso) + " " + "Kg");
}
System.exit(1);
}
}
Gostaria de saber se existe algum outro tipo de valor que eu possa utilizar além do double que funcione tanto com “,” quanto com “.”, ou se existe algum parâmetro que faça com que funcione com double. Agradeço se alguém puder me dar uma força.