Galera, ta acontecendo algo "estranho" comigo. Tenho o seguinte método:
public double getPendencia() {
double v1 = getAPagar(); == 392.1
double v2 = getPago(); == 392.09
double pendencia = v1 - v2; == 0.010000000000047748 ???
if ((pendencia >= (TOLERANCIA_PENDENCIA * -1))
&& (pendencia <= TOLERANCIA_PENDENCIA))
pendencia = 0;
return pendencia;
}
O valor correto para "pendencia" não deveria ser os exatos 0,01?
Se eu arredondo esse valor usando:
BigDecimal(pendencia).setScale(2, BigDecimal.ROUND_UP).doubleValue()
Ele me retorna 0,02. Creio que por causa do "BigDecimal.ROUND_UP"
Como resolver esse problema da forma correta?
Analista-Programador






0 comentários:
Postar um comentário