Como limitar o numero de casas decimais? [RESOLVIDO]

Olá pessoal, sou novato em programação, e estou começando com java.

Gostaria de saber como delimito um numero de casas decimais após a virgula, na hora de ser executado e impresso na tela.

public class MediaFinalAluno {

    public static void main(String[] args) {
        double nota1 = 10;
        double nota2 = 8;
        double nota3 = 6;
        double nota4 = 7;
        double nota5 = 4;
        double nota6 = 5;
        double nota7 = 4;
        double nota8 = 9;
        double nota9 = 8;
        double nota10 = 6;
        double nota11 = 8;
        double nota12 = 10;
        double mediaPrimeiroBimestre = nota1 + nota2 + nota3;
        double mediaSegundoBimestre = nota4 + nota5 + nota6;
        double mediaTerceiroBimestre = nota7 + nota8 + nota9;
        double mediaQuartoBimestre = nota10 + nota11 + nota12;
        double mediaFinalAluno = mediaPrimeiroBimestre / 3 + mediaSegundoBimestre / 3 + mediaTerceiroBimestre / 3 + mediaQuartoBimestre / 3;
        mediaFinalAluno = mediaFinalAluno / 4;
        System.out.println("Media do Primeiro Bimestre = " + (mediaPrimeiroBimestre / 3));
        System.out.println("Media do Segundo Bimestre = " + (mediaSegundoBimestre / 3));
        System.out.println("Media do Teceiro Bimestre = " + (mediaTerceiroBimestre / 3));
        System.out.println("Media do Quarto Bimestre = " + (mediaQuartoBimestre / 3));
        System.out.println("Media Final do Aluno = " + (mediaFinalAluno));
        if (mediaFinalAluno > 7) {
            System.out.println("Aluno Aprovado");
        } else if (mediaFinalAluno >= 4.59 && mediaFinalAluno <= 6.999999999999) {
            System.out.println("Aluno Aprovado Pelo Conselho");
        } else if (mediaFinalAluno < 5) {
            System.out.println("Reprovado");
    }
}

}

E o resultado sai assim:
Media do Primeiro Bimestre = 8.0
Media do Segundo Bimestre = 5.333333333333333
Media do Teceiro Bimestre = 7.0
Media do Quarto Bimestre = 8.0
Media Final do Aluno = 7.083333333333333
Aluno Aprovado

1 curtida

Use printf e %.2f (se quiser mostrar 2 casas depois da vírgula). Exemplo:

 System.out.printf("Media do Primeiro Bimestre = %.2f %n",  (mediaPrimeiroBimestre / 3)); 

%.2f - pega o argumento e imprime com 2 casas depois da vírgula.
%n - passa para a próxima linha (equivalente ao println()).

OK?

4 curtidas

entanglement

Valeu, alguem atendeu um pobre noob me progamação.
rs rs
Testei e deu certo :smiley:

1 curtida

Usa o decimalFormat
que você trata isso e já arredonda de acordo com a formatação desejada “0.00” duas casas apos a virgula - “00.00” duas antes e duas depois , nesse caso ele poe 0 na frente se o numero tive só na casa das unidades e por ai vai

Resolvi.

Acabou ficando assim.

public class MediaFinalAluno {

    public static void main(String[] args) {
        double nota1 = 10;
        double nota2 = 8;
        double nota3 = 6;
        double nota4 = 7;
        double nota5 = 4;
        double nota6 = 5;
        double nota7 = 4;
        double nota8 = 9;
        double nota9 = 8;
        double nota10 = 6;
        double nota11 = 8;
        double nota12 = 10;
        double mediaPrimeiroBimestre = nota1 + nota2 + nota3;
        double mediaSegundoBimestre = nota4 + nota5 + nota6;
        double mediaTerceiroBimestre = nota7 + nota8 + nota9;
        double mediaQuartoBimestre = nota10 + nota11 + nota12;
        double mediaFinalAluno = mediaPrimeiroBimestre / 3 + mediaSegundoBimestre / 3 + mediaTerceiroBimestre / 3 + mediaQuartoBimestre / 3;
        mediaFinalAluno = mediaFinalAluno / 4;
        System.out.printf("Media do Primeiro Bimestre = %.2f %n",  (mediaPrimeiroBimestre / 3));
        System.out.printf("Media do Segundo Bimestre = %.2f %n",  (mediaSegundoBimestre / 3));
        System.out.printf("Media do Terceito Bimestre = %.2f %n",  (mediaTerceiroBimestre / 3));
        System.out.printf("Media do Quarto Bimestre = %.2f %n",  (mediaQuartoBimestre / 3));
        System.out.printf("Media Final do Aluno = %.2f %n", (mediaFinalAluno));
        if (mediaFinalAluno > 7) {
            System.out.println("Aluno Aprovado");
        } else if (mediaFinalAluno >= 4.59 && mediaFinalAluno <= 6.999999999999) {
            System.out.println("Aluno Aprovado Pelo Conselho");
        } else if (mediaFinalAluno < 5) {
            System.out.println("Reprovado");
    }
}

}

Valeu ai galera.

So uma coisa amigo, sobre este IF:

        iif (mediaFinalAluno > 7) {  
             System.out.println("Aluno Aprovado");  
         } else if (mediaFinalAluno >= 4.59 && mediaFinalAluno <= 6.999999999999) {  
             System.out.println("Aluno Aprovado Pelo Conselho");  
         } else if (mediaFinalAluno < 5) {  
             System.out.println("Reprovado");  
         }  

Ficaria mais elegante assim:

        iif (mediaFinalAluno > 7) {  
             System.out.println("Aluno Aprovado");  
         } else if (mediaFinalAluno < 5) {  
             System.out.println("Reprovado");  
         }  else {
             System.out.println("Aluno Aprovado Pelo Conselho");  
         }

Sacou, maior que sete, aprovado, menor que cinco, reprovado, qualquer outra coisa (que neste caso é o intervalo entre 5 e 7, excluindo-se estes dois) sai aprovado pelo conselho

E o if fica mais legivel, voce tem sempre que pensar que:

  • Outras pessoas irão ler seu codigo.
  • Daqui há 10 anos você irá ler seu código.

Como dizem por aí, escrever um código que um computador entenda é moleza! O difícil é escrever código que as outras pessoas entendam.

Veja bem, não é uma crítica, é só uma dica pra você.

[]s

Kemper

2 curtidas

Valeu Kemperacc, fica bem mais fácil definir por esse modo, e mais legivel, eu tinha ido pelo modo mais complicado.