[Resolvido] Como arredondar Media Final com regras especificas?

[quote=lucasportela]A do Danilo tem um erro, se for informada uma nota inteira ele irá exibir 0.

ex: 7.0[/quote]

É só colocar um else no primeiro if…

import javax.swing.JOptionPane;

public class TesteNotaArredondada {

    public static void main(String[] args) {

        double notaArredondada = 0.0;
        double nota = Double.valueOf(JOptionPane.showInputDialog("Entre com a nota"));
        int notaInteira = (int) nota;

        double resto = nota - notaInteira;

        System.out.println("Nota: " + nota);
        System.out.println("Nota inteira: " + notaInteira);
        System.out.println("Resto: " + resto);

        if (resto > 0) {
            if (resto <= 0.5) {
                notaArredondada = notaInteira + 0.5;
            }else{
                notaArredondada = notaInteira + 1;
            }
        } else {
                notaArredondada = notaInteira;
       }

        System.out.println("Nota arredondada: " + notaArredondada);
    }
}

[quote=Danillo_Moreno][quote=lucasportela]A do Danilo tem um erro, se for informada uma nota inteira ele irá exibir 0.

ex: 7.0[/quote]

É só colocar um else no primeiro if…

[code]
import javax.swing.JOptionPane;

public class TesteNotaArredondada {

public static void main(String[] args) {

    double notaArredondada = 0.0;
    double nota = Double.valueOf(JOptionPane.showInputDialog("Entre com a nota"));
    int notaInteira = (int) nota;

    double resto = nota - notaInteira;

    System.out.println("Nota: " + nota);
    System.out.println("Nota inteira: " + notaInteira);
    System.out.println("Resto: " + resto);

    if (resto > 0) {
        if (resto <= 0.5) {
            notaArredondada = notaInteira + 0.5;
        }else{
            notaArredondada = notaInteira + 1;
        }
    } else {
            notaArredondada = notaInteira;
   }

    System.out.println("Nota arredondada: " + notaArredondada);
}

}

[/code][/quote]

import javax.swing.JOptionPane;

public class TesteNotaArredondada {

    public static void main(String[] args) {

        double notaArredondada = 0.0;
        double nota = Double.valueOf(JOptionPane.showInputDialog("Entre com a nota"));
        int notaInteira = (int) nota;

        double resto = nota - notaInteira;

        System.out.println("Nota: " + nota);
        System.out.println("Nota inteira: " + notaInteira);
        System.out.println("Resto: " + resto);
        
        notaArredondada = notaInteira;
        if (resto > 0 ) {
            if (resto <= 0.5) {
                notaArredondada = notaInteira + 0.5;
            }else{
                notaArredondada = notaInteira + 1;
            }
        }

        System.out.println("Nota arredondada: " + notaArredondada);
    }
}

http://www.guj.com.br/posts/listByUser/15/51897.java

notaArredondada = Math.round(nota / 0.5) * 0.5;

Se a nota for 7.1, por exemplo:

7.1 / 0.5 = 14.2
round(14.2) = 14
14 * 0.5 = 7

Se for 7.4:

7.3 / 0.5 = 14.6
round(14.6) = 15
15 * 0.5 = 7.5

Se for um valor já arredondado (por exemplo 6.5):

6.5 / 0.5 = 13
round(13) = 13
13 * 0.5 = 6.5