[RESOLVIDO] Arredondar Divisão

3 respostas
Vinny

Eu estou com um pequeno probleminha com uma divisão.

Bom o Problema é o seguinte eu preciso fazer uma divisão, que o resultado eu quero que sempre
arredonde para cima.
Vou dar alguns exemplos:

17 / 8 = 2.12 o Resultado que eu quero é 3
23 / 8 = 2.87 o Resultado que eu quero é 3
17 / 6 = 2.83 o Resultado que eu quero é 3

Alguem tem alguma ideia de como eu posso fazer isto???

3 Respostas

T

Segue o codigo:

public class Teste { public static void main(String[] args) { System.out.print(Math.ceil(3.3)); } }

Uma dica amigo é ver alguns metodos da classe Math do pacote java.lang.

http://java.sun.com/javase/6/docs/api/

O link acima é da API do Java. Quando precisar saber sobre algo da API é so dar uma procuradinha.

Abraços

Vinny

Valeu pela ajuda…
so que não resolvel o problema ainda

qdo tinha uma divisão 17 / 8 = 2.125 com o metodo que vc passo iria arrendodar para 2 e eu queria
que arredondace para 3 sempre para cima!!!

bom eu consigui faze aqui fiz usando o round e sempre somando 0.5 como o round
sempre arrendonda pra cima os numero acima de 0.5 então eu fiz dessa maneira

serie = (int) Math.round( (2.125 / 17) + 0.5  );
       // o resultado vai ser 3
G

Vinny, seu problema não está no arredondamento e sim na divisão.

Quando vc divide dois números inteiro no java, o resultado vai ser outro número inteiro.
Faça o seguinte teste.

double utilizandoDouble = new Double(17) / new Double(8);
		System.out.println("Com Double: "+ Math.ceil(utilizandoDouble));
		
		double utilizandoInteiros = 17 / 8;
		System.out.println("Com Inteiros: "+ Math.ceil(utilizandoInteiros));

E veja você mesmo o resultado.

A função de arredondamento que você precisa é ceil mesmo,
seu problema está na precisão da divisão justificada pela tipagem dos atributos da operação!

Um cast antes da divisão resolveria:

double utilizandoInteiros = (double) 17 / 8;
	System.out.println("Com Inteiros: "+ Math.ceil(utilizandoInteiros));
Criado 17 de julho de 2009
Ultima resposta 17 de jul. de 2009
Respostas 3
Participantes 3