Condição nao funciona[[RESOLVIDO]]

2 respostas
juliocesarsrosa

Ola galera gostaria de uma ajuda ...

eu tenho um IF e nele compara um tipo big decimal porem nao estou conseguindo fazer funcionar ..

segue o codigo

//se o Percent Desconto NAO for igual a zero(BigDecimal)<< (talvez aki seja o problema por nao poder usar equals para um tipo BigDecimal)faça tal coisa.

if (!nf.format(sacado.getPercentDesconto()).substring(3).equals(nf.format(BigDecimal.ZERO).substring(3)) || (!nf.format(sacado.getValorDesconto()).substring(3).equals(nf.format(BigDecimal.ZERO).substring(3)))) {
                        txDesconto.setText(nf.format(sacado.getPercentDesconto()).substring(3));
                        txValorDesconto.setText(nf.format(sacado.getValorDesconto()).substring(3));
                                          }

Essa foi a condição que nega e agora tem a que nao nega

if (nf.format(sacado.getPercentDesconto()).substring(3).equals(nf.format(BigDecimal.ZERO).substring(3)) && (nf.format(sacado.getValorDesconto()).substring(3).equals(nf.format(BigDecimal.ZERO).substring(3)))) {
                        txDesconto.setText(nf.format(sacado.getPercentDesconto()).substring(3);
                        txValorDesconto.setText(nf.format(sacado.getValorDesconto()).substring(3));
                        getTxNomeFantasia().setEnabled(false);

                                         }
.

eu até fiz funcionar galera porem fiz de um geito POG fiz meio assim

if (sacado.getPercentDesconto().equals(0,00)){

}

ele verifica se o valor que vem é igual a string "0,00" pq esse eh o formato BigDecimal porem ele nao compara em si o tipo BigDecimal e sim a String o que creio eu
que se caracteriz POG.

Galera sou meio iniciante ainda entaum em desculpem se tiver alguma grande besteira por ai ....

obrigado.

2 Respostas

wbdsjunior
juliocesarsrosa:
Ola galera gostaria de uma ajuda ...

eu tenho um IF e nele compara um tipo big decimal porem nao estou conseguindo fazer funcionar ..

segue o codigo

//se o Percent Desconto NAO for igual a zero(BigDecimal)<< (talvez aki seja o problema por nao poder usar equals para um tipo BigDecimal)faça tal coisa.

if (!nf.format(sacado.getPercentDesconto()).substring(3).equals(nf.format(BigDecimal.ZERO).substring(3)) || (!nf.format(sacado.getValorDesconto()).substring(3).equals(nf.format(BigDecimal.ZERO).substring(3)))) {
                        txDesconto.setText(nf.format(sacado.getPercentDesconto()).substring(3));
                        txValorDesconto.setText(nf.format(sacado.getValorDesconto()).substring(3));
                                          }

Essa foi a condição que nega e agora tem a que nao nega

if (nf.format(sacado.getPercentDesconto()).substring(3).equals(nf.format(BigDecimal.ZERO).substring(3)) && (nf.format(sacado.getValorDesconto()).substring(3).equals(nf.format(BigDecimal.ZERO).substring(3)))) {
                        txDesconto.setText(nf.format(sacado.getPercentDesconto()).substring(3);
                        txValorDesconto.setText(nf.format(sacado.getValorDesconto()).substring(3));
                        getTxNomeFantasia().setEnabled(false);

                                         }
.

eu até fiz funcionar galera porem fiz de um geito POG fiz meio assim

if (sacado.getPercentDesconto().equals(0,00)){

}

ele verifica se o valor que vem é igual a string "0,00" pq esse eh o formato BigDecimal porem ele nao compara em si o tipo BigDecimal e sim a String o que creio eu
que se caracteriz POG.

Galera sou meio iniciante ainda entaum em desculpem se tiver alguma grande besteira por ai ....

obrigado.

se sacado.getPercentDesconto() e sacado.getValorDesconto() são do tipo BigDecimal, apenas compare com equals()?

import java.math.BigDecimal;

public class Teste {
    public static void main(String[] args) {
        System.out.println(!BigDecimal.ZERO.equals(new BigDecimal(0)));
    }
}
PauloBrito

Use o método compareTo() do BigDecimal.

Criado 24 de janeiro de 2011
Ultima resposta 24 de jan. de 2011
Respostas 2
Participantes 3