Pessoal, estou fazendo um programa em que eu quero verificar se um número é primo… ((acho que não tem nenhuma classe no Java já pronta que faça isso, néé…??))
Enfim, estou fazendo na mão mesmo. E pra isso preciso verificar se uma divisão deu um número exato, ou seja, um número sem casas decimais…
Por exemplo, seria um if… mas… que condição verifica se uma variável não tem números (fora zeros) nas casas decimais…?
public static void main(String[] args) {
// TODO code application logic here
double num = 5.4;
double resto = num % 1;
if(resto == 0){
System.out.println("Nao tem resto");
}else{
System.out.println("Tem resto");
}
}
Só pela curiosidade acadêmica. Também seria possível fazer isso sem o operador %.
int result = num1 / num2;
int resto = result*num2 - num1;
if (resto != 0)
System.out.println("Tem resto: " + resto);
else
System.out.println("Não tem resto");
O segredo está no fato do resultado ser int. Ele trunca a resposta.
Basicamente a conta feita no código é esta:
Resultado = 3 / 2 (atribui 1 ao resultado, que é int)
resultado * 2 = 2
3 -2 = 1 (o resto apareceu!)