Problema em programa Java para retornar as moedas e notas necessarias para o troco

Ola a todos !!

Estou fazendo um programa em java para retornar quanto de notas e moedas para dar o troco usando uma interface, mas estou na duvida e esta dando erro, segue o codigo.

import java.text.DecimalFormat;
import java.util.List;

public class CalculaTroco implements IMaquina {

@Override
public List<Troco> montarTroco(double troco) {
	
	DecimalFormat formatador = new DecimalFormat("###,##0.00");
   

      String result;
      double Vtroco;
      int i, vlr, ct;

      //Vtroco = pago - conta;
      result ="\nTroco = R$"+ formatador.format(Vtroco) +"\n\n";

// definindo as notas do troco (parte inteira)
      
      vlr = (int)Vtroco;
      i = 0;
      while (vlr != 0) {
        ct = vlr / nota[i]; // calculando a qtde de notas
        if (ct != 0) {
           result = result + (ct +"nota(s) de R$"+ nota[i] +"\n");
           vlr = vlr % nota[i]; // sobra
        }
        i = i + 1; // próxima nota
      }

      result = result +"\n";

// definindo os centavos do troco (parte fracionária)
      
      vlr = (int)Math.round((Vtroco - (int)Vtroco) * 100);
      i = 0;
      while (vlr != 0) {
        ct = vlr / centavos[i]; // calculando a qtde de moedas
        if (ct != 0) {
           result = result + (ct +"moeda(s) de"+ centavos[i] +
           "centavo(s)\n");
           vlr = vlr % centavos[i]; // sobra
        }
        i = i + 1; // próximo centavo
      }

      return(result);
    }


}

package com.senior.avaliacao.qs7;

public class Troco {
public enum ECedula {
NOTA100(100), NOTA50(50), NOTA20(20), NOTA10(10), NOTA5(5), NOTA2(2), MOEDA100(
1), MOEDA50(0.5), MOEDA25(0.25), MOEDA10(0.1), MOEDA5(0.05), MOEDA1(
0.01);
ECedula(double valor) {
this.valor = valor;
}
private double valor;
public double getValor() {
return valor;
}
}

private ECedula tipo;
private int quantidade;

public void adicionaQuantidade(int qtde) {
	quantidade += qtde;
}

public Troco(ECedula tipo, int quantidade) {
	super();
	this.tipo = tipo;
	this.quantidade = quantidade;
}

public ECedula getTipo() {
	return tipo;
}

public int getQuantidade() {
	return quantidade;
}

@Override
public String toString() {
	return quantidade + " - " + tipo;
}

}

Qual?

Não duplique tópicos.
Original aqui.