Calculos

4 respostas
R

Olá pessoal tenho um método para calcular o percentual atingido de um determinado tempo medio.

public static long getPercentualNota(long tempoMilis, long media)throws ErrBds{
		
//		tempoMilis = tempoMilis/1000;
//		media = media/1000;
		
		long nota =  ((100/tempoMilis)* media);
		return nota;
		
	}

Os tempos passados são : tempoMilis= 21240000, media= 21418000 e quando divido 100 pelo tempo ele arredonda para zero.
Como faço para que não arredonde.

4 Respostas

peczenyj

usando 100.0 ou cast para double na divisão

T

O operador de divisão em Java e em C++, quando aplicado a dois valores int ou long, dá um resultado int ou long. No seu caso ele trunca (não arredonda) para zero.

Você pode fazer a conta com double, e converter novamente para long. Exemplo:

long nota =  Math.round ((100.0/tempoMilis)* media);
R

valeu galera, resolvido.

raikk0n3n

ao inves de long tente usar BigDecimal ou o float

Criado 21 de novembro de 2007
Ultima resposta 21 de nov. de 2007
Respostas 4
Participantes 4