Posso fazer isso?

     Gostaria de saber se o uso dos ifs da forma que eu fiz abaixo é valido, ou é uma má programação. A ideia é calcular a quantidade de moedas de um troco

public String troco (double dif){

    this.dif = Double.parseDouble(util.formatar_numero(dif));
    parte_inteira=(int)this.dif;
    parte_frac = this.dif - parte_inteira;
    parte_frac = Double.parseDouble(util.formatar_numero(parte_frac));

    quant_cent_001=0;
    quant_cent_005=0;
    quant_cent_010=0;
    quant_cent_025=0;
           
    if (parte_frac>=0.25){

                if (parte_inteira>=1){
                    quant_cent_025 = (int) (parte_inteira/ 0.25);
                    
                }
                    else{
                        quant_cent_025=(int) (parte_frac/0.25);
                        parte_frac=Double.parseDouble(util.formatar_numero(parte_frac- (quant_cent_025*0.25)));
                    }
              
            }

    if (parte_frac>=0.10){
           
        quant_cent_010 = (int)Double.parseDouble(util.formatar_numero(parte_frac/ 0.10));
        parte_frac=Double.parseDouble(util.formatar_numero(parte_frac- (quant_cent_010*0.10)));
               

    }

    if (parte_frac>=0.05){

        quant_cent_005 =(int)Double.parseDouble(util.formatar_numero(parte_frac / 0.05));
        parte_frac=Double.parseDouble(util.formatar_numero(parte_frac- (quant_cent_005*0.05)));
                   
     }

    if (parte_frac>=0.01){

        quant_cent_001 =(int)Double.parseDouble(util.formatar_numero((parte_frac / 0.01)));
        parte_frac=Double.parseDouble(util.formatar_numero(parte_frac-  (quant_cent_001*0.01)));
                    
    }
 
 if (this.dif>=0)
    return "Troco R$: "+util.formatar_numero(dif)+"\n\n"+
           "Moedas R$ 0,25: "+quant_cent_025+"\n"+"Moedas R$ 0,10: "+(int)quant_cent_010+"\n"+
           "Moedas R$ 0,05: "+(int)quant_cent_005+"\n"+"Moedas R$ 0,01: "+(int)quant_cent_001+"\n";

 else return "Valor insuficiente para pagamento !!";

}

Blz Ebertholdo.

Poder ate pode, mas antes de sair mudando alguma coisa confira a execução de seu metodo pois testei aqui e ele esta roubando 0,01 centavos.

Falou.

Olá;

não vi nada de errado no seu uso so if. O modo de uso é simples…

if (expressão) { //instrução } else

  Minha pergunta é se usar os ifs dessa maneira é certo, pois terei que passar por todas as opções e se usar if-else if ele passa somente em uma opção. A questão é que utilizei um monte de ifs e gostaria de saber se dessa forma é um mau habito de programação ou não?

[quote=gpd38]Blz Ebertholdo.

Poder ate pode, mas antes de sair mudando alguma coisa confira a execução de seu metodo pois testei aqui e ele esta roubando 0,01 centavos.

Falou.

[/quote]

Aqui pra mim funciona corretamente