Erro!

Então, simplesmente não consigo exibir a porcentagem que que está sendo exibida, não tenho muita experiência então deve ter um meio mais fácil de exibir a porcentagem.

package ListaExercício;

import java.util.Scanner;

public class Exercício13 {
/*
* 13. Desenvolva um algoritmo para ler o número total de votos em uma eleição
* municipal, assim como o número de votos brancos, nulos e válidos. Calcular e
* mostrar o percentual de cada um em relação ao total de votos.
*/

public static void main(String[] args) {

	Scanner scan = new Scanner(System.in);
	System.out.println("Informe o número total de eleitores na cidade: ");

	int totalEleitores, brancos, nulos, validos, votantes;

	brancos = 0;
	nulos = 0;
	validos = 0;
	votantes = 0;

	totalEleitores = scan.nextInt();

	while (votantes < totalEleitores) {
		System.out.println(
				"Digite 1 para ser voto válido, 2 para branco e 3 para nulo, ou aperte p para parar o programa.");
		String tecla = scan.next();
		votantes++;
		if (tecla.equals("1")) {
			validos++;

		} else if (tecla.equals("2")) {
			brancos++;

		} else if (tecla.equals("3")) {
			nulos++;

		} else if (tecla.equals("p")) {
			break;
		} else {
			System.out.println("Informe uma tecla válida!");
			break;
		}
	}
	

	System.out.println("**********************************************");
	System.out.println("A porcentagem de votos válidos é: " + ((validos/totalEleitores)* 100) + "%");
	System.out.println("A porcentagem de votos nulos é: " + ((nulos/totalEleitores)* 100) + "%");
	System.out.println("A porcentagem de votos em branco é: " + ((brancos/totalEleitores)* 100)+ "%");

}

}

Se alguém conseguir me auxiliar serei grato!

???

Suas variáveis são do tipo inteira, int! Então em uma divisão entre inteiros o resultado é inteiro! Exemplo:

int a = 1;
int b = 2
System.out.println(a/b); // resultado é 0 e não 0,5

// é necessário fazer um cast
System.out.println((float)a/b); // resultado 0,5

Boa tarde!
Mas mesmo assim sempre fica = 0.
A ideia é que nos últimos sysout lá em baixo saia o resultado de dentro do while.

Mostre como você fez!

Ah entendi agora, apenas coloquei o float no lugar errado.
Funcionou, deu certo, agradeço o FeedBack.

1 curtida
public class Exercicio13 {

/**
 * 13. Desenvolva um algoritmo para ler o número total de votos em uma eleição
 * municipal, assim como o número de votos brancos, nulos e válidos. Calcular e
 * mostrar o percentual de cada um em relação ao total de votos.
 */
public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    String resultString = "**********************************************\n" +
            "A porcentagem de votos válidos é: %.2f %%\n" +
            "A porcentagem de votos nulos é: %.2f %%\n" +
            "A porcentagem de votos em branco é: %.2f %%\n";

    int totalEleitores = 0;
    int brancos = 0;
    int nulos = 0;
    int validos = 0;
    int votantes = 0;

    System.out.println("Informe o número total de eleitores na cidade: ");
    totalEleitores = scan.nextInt();

    votacao:
    while (votantes < totalEleitores) {
        System.out.println("Digite 1 para ser voto válido, 2 para branco e 3 para nulo, ou aperte p para parar o programa.");
        String tecla = scan.next();

        switch (tecla.toLowerCase()) {
            case "1":
                validos++;
                break;
            case "2":
                brancos++;
                break;
            case "3":
                nulos++;
                break;
            case "p": //pular?
                votantes++;
                continue;
            default:
                System.out.println("Informe uma tecla válida!");
                continue votacao;
        }
        votantes++;
    }

    System.out.println(String.format(resultString,
            getValorPercentual(validos, totalEleitores),
            getValorPercentual(nulos, totalEleitores),
            getValorPercentual(brancos, totalEleitores)
    ));

}

static Float getValorPercentual(int votos, int totalEleitores) {
    return BigDecimal.valueOf(votos)
            .divide(BigDecimal.valueOf(totalEleitores))
            .multiply(BigDecimal.valueOf(100))
            .floatValue();
}

}
2 curtidas