Estou fazendo um IMC no notepad++(Java) mas na hora de colocar altura o programa fecha porque tem “.” ou “,” e se colocar por exemplo 180 em vez de 1,80 ele roda.
Edit:
Você está convertendo em inteiro. Tente utiizar Float ou Double, que suportam valores fracionados.
Rodrigo_Void
Olá,
se vc está lendo um double do console, precisa digita-lo com “,”. É assim.
Porém, se não concorda com este comportamento e quer que seu programa aceite “.”, vai precisar ler como String e fazer o parse manualmente para double, considerando . e/ou ,
L
Lunnie
importjavax.swing.JOptionPane;publicclassEx9{publicstaticvoidmain(String[]args){doublemassa;massa=Integer.parseInt(JOptionPane.showInputDialog("Digite seu peso:"));doublealtura;altura=Integer.parseInt(JOptionPane.showInputDialog("Digite sua altura:"));doubleIMC;IMC=massa/(altura*altura);JOptionPane.showMessageDialog(null,"Seu IMC é : "+IMC);}}
tem algo errado? pra não rodar ponto nem virgula ?
L
Luis_Augusto_Santos
Tem, você lê um número quebrado e fazer a conversão para um número inteiro
L
Lunnie
importjavax.swing.JOptionPane;publicclassEx9{publicstaticvoidmain(String[]args){doublemassa;massa=Integer.parseInt(JOptionPane.showInputDialog("Digite seu peso:"));doublealtura;altura=Integer.parseInt(JOptionPane.showInputDialog("Digite sua altura:"));doubleIMC;IMC=massa/(altura*altura);JOptionPane.showMessageDialog(null,"Seu IMC é : "+IMC);}}
Rodrigo_Void
POISEEEEE,
Vc digita um valor “decimal” e ai quer converter algo com ponto ou virgula pra inteiro???
Tem algo errado nesta sua lógica cara.
Se quer converter uma String para decimal, precisa converter para DOUBLE: Double.parseDouble
L
Lunnie
olhando assim agr me parece bem obvio kkkk. Estou no começo da facul, obrigado pela ajuda !