Problema com divisão na hora de rodas o programa [resolvido]

então na meu netbeans quando eu coloco um numero para dividir ele aparece apenas como 0, eu to fazendo um exercício e nele eu teria que fazer a seguinte conta porc1 = (acm1 * acmtodos) / 100; para acha porcentagem, dai eu tentei coloca pra dividir 25/100 e mesmo assim deu problema, sera que é o programa que esta com pau?

o exercício ta como double!

e eu tentei dividir agora 8/4 e deu, mas quando tento dividir um numero menor por o divisor ele da erro o que poderia ser?

Cola o código aqui.

[code]import javax.swing.JOptionPane;
public class Main {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    int codigo;
    double acm1, acm2, acm3, acm4, acmnulo, acmbranco, acmtodos;
    double porc1, porc2, porc3, porc4, porc5, porc6;

    codigo = 7;
    acm1 = 0;
    acm2 = 0;
    acm3 = 0;
    acm4 = 0;
    acmnulo = 0;
    acmbranco = 0;
    acmtodos = 0;

    while(codigo != 0)
    {
        if(codigo != 0)
        {
        codigo = Integer.parseInt(JOptionPane.showInputDialog("Digite o codigo do candito:"));
        switch(codigo)
        {
            case 1: acm1 = acm1 + 1; break;
            case 2: acm2 = acm2 + 1; break;
            case 3: acm3 = acm3 + 1; break;
            case 4: acm4 = acm4 + 1; break;
            case 5: acmnulo = acmnulo + 1; break;
            case 6: acmbranco = acmbranco + 1; break;
            case 7:
            default: JOptionPane.showMessageDialog(null, "codigo não existe");
            acmtodos = acmtodos + acm1 + acm2 + acm3 + acm4 + acmnulo + acmbranco;
        }
        }
    }
    porc1 = ((acm1 * acmtodos) / 100);
    porc1 = 8/4;
    porc2 = (acm2 * acmtodos)/100;
    porc3 = (acm3 * acmtodos)/100;
    porc4 = (acm4 * acmtodos)/100;
    porc5 = (acmnulo * acmtodos)/100;
    porc6 = (acmbranco * acmtodos)/100;
    JOptionPane.showMessageDialog(null, "A porcentagem do candidato 1 = "+porc1+"\n"+
                                        "A porcentagem do candidato 2 = "+porc2+"\n"+
                                        "A porcentagem do candidato 3 = "+porc3+"\n"+
                                        "A porcentagem do candidato 4 = "+porc4+"\n"+
                                        "A porcentagem de votos em nulo = "+porc5+"\n"+
                                        "A porcentagem de votos em branco = "+porc6+"\n");
}

}[/code]

desconsidera aquele porc1 = 8/4

Imagine que acm1 = 0

porc1 = ((0 * acmtodos) / 100);

porc1 sempre vai dar zero.

não, mas ali, tem um que é o acumulador, conforme a pessoa digita o numero 1 é acumulado ali

Se não entrar no case, não vai acumular.

acumula sim! testei dando um System.out.println(acm1) pra ver se tava acumulando!

é outra, eu testei dividir apenas 25/100 que era pra dar 0,25 e deu 0.0

Pq vc esta divivindo int neh, tenta assim “new Double(25) / new Double(100)”, ai vai dar certo.

[quote=analyser]Imagine que acm1 = 0

porc1 = ((0 * acmtodos) / 100);

porc1 sempre vai dar zero.[/quote]

experimenta 100.0 (double)

porc1 = ((0 * acmtodos) / 100.0);

boa cara, com 100.0 funcionou
mas achei um pau nervoso isso! ¬¬

agradeço

Não precise colocar o 100 como double.

double a = 25;
double b = a / 100;

System.out.println(b);
0.25

O que não pode é usar dois inteiros e esperar um double.