Problema com porcentagem!

3 respostas
M

quero calcular a porcentagem de votos para cada candidato, a formula para porcentagem é :

(votos* total de votos / 100)

Porém eu não estou conseguindo passar esse calculo par ao java, na teoria funciona, más la dentro quando mostra o valor ele fica com 0.

int total;
     total = r+s+o+n;  
     
     double pr,po,ps,pn;
     
     pr =  (r /10)*100; po =  (o / 10)*100; ps =  (s / 10)*100; pn =  (n / 10)*100;
     
     JOptionPane.showMessageDialog(null, "Contagem dos votos:"+
                                          "\nTotal de votos :" + total + 
                                          "\n Revolução : " + r + " - Porcentagem : "+ pr + "%" +
                                          "\n Oposição  : " + o + " - Porcentagem : "+ po + "%" +
                                          "\n Situação  : " + s + " - Porcentagem : "+ ps + "%" +
                                          "\n Nulos     : " + n + " - Porcentagem : "+ pn + "%");

3 Respostas

M

vou colocar todo o código para melhor análise.

package desafio;
import javax.swing.JOptionPane;
/**
 *
 * @author Michael
 */
public class Desafio {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        int x; // Votos
        int r = 0;
        int o = 0;
        int n = 0;
        int s = 0;
        int tabela;
        int repete =1;
        int loops;
  

  for (loops = 1; loops <= 10; loops++)
     
 {
      tabela = JOptionPane.showConfirmDialog(null, "Mostrar tabela de candidatos? ", "Confirmação", 
JOptionPane.YES_NO_OPTION);

if (tabela == 0)
   {
JOptionPane.showMessageDialog(null, "Tabela de Chapas"
+ "\n Para votar na Revoluçao - Escolha 1 "
+ "\n Para votar na Oposição - Escolha 2"
+ "\n Para votar na Situação - Escolha 3 "
+ "\n Para votar nulo - Escolha 4 ");
  }
     
     x = Integer.parseInt(JOptionPane.showInputDialog(null, "Qual é sua chapa?"));
     switch (x)
     {
         case (1): JOptionPane.showMessageDialog(null, "Chapa Revolução!");
             r++;
             break;
             case(2): JOptionPane.showMessageDialog(null, "Chapa Oposição");
                 o++;
                 break;
             case (3): JOptionPane.showMessageDialog(null, "Chapa Situação");
                 s++;
                 break;
                 case(4): JOptionPane.showMessageDialog(null, "Voto Nulo");
                     n++;
                     break;
                      }
                     
     
 }
     int total;
     total = r+s+o+n;  
     
     double pr,po,ps,pn;
     
     pr =  (r /10)*100; po =  (o / 10)*100; ps =  (s / 10)*100; pn =  (n / 10)*100;
     
     JOptionPane.showMessageDialog(null, "Contagem dos votos:"+
                                          "\nTotal de votos :" + total + 
                                          "\n Revolução : " + r + " - Porcentagem : "+ pr + "%" +
                                          "\n Oposição  : " + o + " - Porcentagem : "+ po + "%" +
                                          "\n Situação  : " + s + " - Porcentagem : "+ ps + "%" +
                                          "\n Nulos     : " + n + " - Porcentagem : "+ pn + "%");
     
    
 }
}
ViniGodoy

Se seus cálculos são feitos com inteiros, então o resultado será inteiro.

Se quer um resultado em double, deve haver doubles na fórmula:

pr = (r /10.0)*100.0; po = (o / 10.0)*100.0; ps = (s / 10.0)*100.0; pn = (n / 10.0)*100.0;
Outra coisa. Dividir por 10 e depois multiplicar por 100 é o mesmo que multiplicar por 10.

pr = r *10.0; po = o *10.0; ps = s * 10.0; pn = n *10.0;

Nesse caso, talvez você nem precisasse dos doubles.

M

aa dmr… vlws cara…

Criado 13 de outubro de 2012
Ultima resposta 13 de out. de 2012
Respostas 3
Participantes 2