Nesse trecho de código eu divido duração, que é do tipo Long, por 60000 e depois converto pra double para poder pegar os valores depois do zero. O problema é que não ta pegando. Se o resultado da operação for, por exemplo:
duração/60000 = 35,3333
Só ta assumindo 35,0. Eu quero pegar 35,3, porque se não eu perco a precisão do meu relatório.
Nesse trecho de código eu divido duração, que é do tipo Long, por 60000 e depois converto pra double para poder pegar os valores depois do zero. O problema é que não ta pegando. Se o resultado da operação for, por exemplo:
duração/60000 = 35,3333
Só ta assumindo 35,0. Eu quero pegar 35,3, porque se não eu perco a precisão do meu relatório.
Alguém tem uma sugestão?
O problema é que vc está assumindo que duracao/60000 é um numero com casas decimais.
Mas se fosse porquê seria necessária a conversão para double ?
A resposta é simples: duracao/60000 não é um double, é um long. O que vc quer é comparar doubles, então faça exactamente isso. Não invente…
O detalhe é como fazer com que a divisão resulte num doube. A JVM irá converter para double se um dos valores for double. Logo basta que 60000 seja um double par que dê certo. Isso é feito colocando um d depois do numero. Pode ser feito usando 60000.00 mas isso não significa a mesma coisa. ( aqui vc está dizendo que aqules dois zeros depois da virgula são significativos; e no caso, não são)