Bom Dia.
Como que eu faço para comparar o valor de um bigdecimal é diferente de 0?
Bom Dia.
Como que eu faço para comparar o valor de um bigdecimal é diferente de 0?
Há diversas formas, dentre elas:
!numero.equals(BigDecimal.ZERO);
Sim … Mas ainda não está funcionando.
Olha o que eu estou querendo fazer…
Tenho que exibir o menor numero, mas que não seja 0.
if(valoracumulado_p.compareTo(menorvalor) < 0)
{
if(!valoracumulado_p.equals(BigDecimal.ZERO))
{
menorvalor = valoracumulado_p;
}
}
}
//Já feita as devidas conversões de variaveis para jogar para o JTextField
textField.setText(menorvalor);
esse é o código de comparação.
mas ele está mostrando 0 ainda.
Quando estamos trabalhando com BigDecimal não é legal comparar com equals(), porque ele leva em consideração não só o valor numérico como alguns outros atributos - a precisão associada àquela instância, por exemplo.
Para comparar só o valor numérico, use compareTo():
if(numero.compareTo(BigDecimal.ZERO) != 0)
[quote=gomesrod]Quando estamos trabalhando com BigDecimal não é legal comparar com equals(), porque ele leva em consideração não só o valor numérico como alguns outros atributos - a precisão associada àquela instância, por exemplo.
Para comparar só o valor numérico, use compareTo():
if(numero.compareTo(BigDecimal.ZERO) != 0)
Exactamente. BigDecimal é um exemplo de uma classe cujo equals não é compativel com compareTo e por isso deve ser usado compareTo.
um outra opção é usar signum();
if(numero.signum() != 0)
A função sinal só é zero se o valor é zero.