Double, Int

8 respostas
R

galera, alguem sabe como fazer para que o resultado do metodo aqui em baixo seja de tipo int(divisao inteira de a por b) mesmo se o tipo de retorno do metodo é double(divisao real) ?

public double divisao (int a, int b) { }

Muito obrigado.

8 Respostas

peerless

raq1:
galera, alguem sabe como fazer para que o resultado do metodo aqui em baixo seja de tipo int(divisao inteira de a por b) mesmo se o tipo de retorno do metodo é double(divisao real) ?

public double divisao (int a, int b) { }

Muito obrigado.

Pq vc não coloca o tipo de retorno como long, que têm o mesmo “tamanho” de double (64 bits…) OU use wrappers:

public class DoubleInt { public Double divisao (int a, int b) { return new Double((a/b)); } public static void main(String[] args) { System.out.println(new DoubleInt().divisao(4, 2).intValue()); } }

T
public double divisao (int a, int b)
{
    return a / b;
}
R

com return a/b o resultado de por exemplo 25/2 é 12.0. Como fazer para que o resultado seja só 12?

peczenyj

Basta fazer um cast no lugar certo:

import java.util.regex.Pattern;


public class Teste {

	public static double divisaoInteira (int a, int b){ return a / b; }
	public static double divisaoDouble (int a, int b){  return (double) a / b;  } 
	public static void main(String[] args) {		
		System.out.println(divisaoInteira(1,2)); // imprime 0.0
		System.out.println(divisaoDouble(1,2)); // imprimt 0.5
	}
}

Divisão de inteiro por inteiro é um inteiro. Mas... o cast ta ai pra isso :)

com return a/b o resultado de por exemplo 25/2 é 12.0. Como fazer para que o resultado seja só 12?

Ué, pq não retornar um inteiro nesse caso ?

A resposta seria: formate o resultado (printf por exemplo) mas vc parece ter um problema conceitual ai.

Kassiane_Pretti

Para o resultado ser igual a 12 retorne um int…

ivo_costa

Com retorno double eu axo que não dá.

Ou tú muda o retorno para int, Integer, BigDecimal…

Ou quem chamar esse método faz um

new Double(double).intValue()
LPJava

retorne um inteiro!!

Daniel_Reis
public static void main(String[] args) {
 	System.out.println(Divide(25,2));	
	}
	
	
	static int Divide(int a, int b){ 
		return (int) a / b;
	}

Esse int no return, não é necessário, pois a compactação é feita implicitamente, seguindo o seu tipo de retorno.

:thumbup:

Criado 26 de fevereiro de 2008
Ultima resposta 26 de fev. de 2008
Respostas 8
Participantes 8