Duvida e Erros - JOption Programa Media

Pessoal, o q esta errado no codigo abaixo ???

Outra duvida…
JOptionPane.showInputDialog funciona como String ou int???
pois ja q estou trabalhando com numeros… fiz o teste mas deu erro!
e o JOptionPane.showMessageDialog String ou int???

import javax.swing.JOptionPane;


public class TresPalavras
{

public static void main(String[] args) {



String nota1 = "";

String nota2 = "";

String nota3 = "";


nota1 = JOptionPane.showInputDialog("Nota 1");

nota2 = JOptionPane.showInputDialog("Nota 2");

nota3 = JOptionPane.showInputDialog("Nota 3");

int media = (nota1 + nota2 + nota3) / 3;	

        String msg = "Media = " + media;

	JOptionPane.showMessageDialog(null, msg);

}

}

Oi,

JOptionPane é uma String, quando você digitar um número na caixa de texto vai gerar exceção, pois você não esta fazendo uma conversão.

ex:

int nota1;
nota1 = Integer.parseInt(JOptionPane.showInputDialog("Nota 1: "));

Nesse código estou passando a “função Integer.parseInt” para transformar ou converter valor inteiros para o JOption.

Olhando um pouco mais para baixo… sua variavel “media” é inteiro… e esta recebendo valor como String… isso é impossivel… passe suas variaveis nota para inteiras. ai sim… ficara funcionando.

tchauzin!

Ola amigo, manco nossa amiga disse tem que converter cara :slight_smile: por que o JOptionPane trabalha como String :slight_smile: valew ai !!!

Qualquer duvida posta ai!!!

Correção do seu codigo amigo é bom que seu atributo media seja do double cara pois media pode ser “valor quebrado”. pode ser que não sai o valor que você esperava…

valew!

Aewwww… agora funcionou!!!

Mas assim… como faco para limitar as casas decimais…

Media =4,6666666667!!!


import javax.swing.JOptionPane;


public class TresPalavras
{

public static void main(String[] args) {



double nota1 = 0;

double nota2 = 0;

double nota3 = 0;


nota1 = Integer.parseInt(JOptionPane.showInputDialog("Nota 1: ")); 

nota2 = Integer.parseInt(JOptionPane.showInputDialog("Nota 2: ")); 

nota3 = Integer.parseInt(JOptionPane.showInputDialog("Nota 3: ")); 


double media = (nota1 + nota2 + nota3) / 3;	

        String msg = "Media = " + media;

	JOptionPane.showMessageDialog(null, msg);

}

}

NumberFormat df = new DecimalFormat("##,##"); System.out.println(df.format(media));

Oi,
Raff… !!!

amigo, você esta utilizando as variaveis double… entao a “conversão” seria Double.parseDouble…

Tchauzin!

AAAAAhhhhhh agora tah explicado pq eu nao conseguia inserir numero fracionario, ehheehe… OBRIGADO!

Nao entendi qnto ao formato… limitar casa decimal!

[code]import javax.swing.JOptionPane;

public class TresPalavras
{

public static void main(String[] args) {

double nota1 = 0;

double nota2 = 0;

double nota3 = 0;

nota1 = Double.parseDouble(JOptionPane.showInputDialog("Nota 1: "));

nota2 = Double.parseDouble(JOptionPane.showInputDialog("Nota 2: "));

nota3 = Double.parseDouble(JOptionPane.showInputDialog("Nota 3: "));

double media = (nota1 + nota2 + nota3) / 3;

String msg = "Media = " + media;


JOptionPane.showMessageDialog(null, msg);

}

}
[/code]