utilizar el for con arrays

Bueno mi pregunta es la siguiente. Para un trabajo de la u tengo que hacer un distribuidor. Ahora en una parte tengo que calcular cuantas monedas voy a devolver para dar el cambio.

Por ejemplo tengo una bebida agua que cuesta € 2.20. La persona paga con 3 asi que su cambio seria de 0.80. El programa eso lo hace sin ningun problema.

Cuando la persona toma el pedido va ingresando (a travez de un listbox que contiene los valores de cada moneda) cuantas monedas de cada valor recibe.

Y ahora yo tengo que calcular y mostrar cuantas monedas y el valor cuando voy a devolver el cambio. Lo estoy intentando de la siguiente forma: * Hice 3 arrays 1 array bidimensional para guardar el alor de la moneda y la cantidad de monedas de cada valor. Y un array simple decimal con posibles valores del cambio

int posiblesValores [] (lease aqui bedragen. Es un programa en holandes) posiblesValores= new decimal [19]; y a cada uno le di estos valores=

bedragen[0]= 1.90m ; bedragen[1]= 1.80m ; bedragen[2]= 1.70m ; bedragen[3]= 1.60m ; bedragen[4]= 1.50m ; bedragen[5]= 1.40m ; bedragen[6]= 1.30m ; bedragen[7]= 1.20m ; bedragen[8]= 1.10m ; bedragen[9]= 1.00m ; bedragen[10]= 0.90m ; bedragen[11]= 0.80m ; bedragen[12]= 0.70m ; bedragen[13]= 0.60m ; bedragen[14]= 0.50m ; bedragen[15]= 0.40m ; bedragen[16]= 0.30m ; bedragen[17]= 0.20m ; bedragen[18]= 0.10m ;

Array bidimensional= decimal cambio[,]= new decimal [5,2] (cambio en holandes = teruggave) teruggave[0, 0] = 2.00m; teruggave[1, 0] = 1.00m; teruggave[2, 0] = 0.50m; teruggave[3, 0] = 0.20m; teruggave[4, 0] = 0.10m;

Despues entonces hice un metodo con if :

wisselgeld = valor a devolver

Yo con esto intento que por ejemplo si el valor a devolver es igual a 1.90 entonces me muestre que tengo que regresar una moneda de 1, una de 0.50. y 2 de 0.20. El problema es cuando corro el programa para cada valor que tengo que devolver me da en pantalla lo mismo siempre que es el primer cambio del if osea como si valor a devolver siempre fuera 1.90.

Ya verifique y el programa toma bien el valor del cambio y el valor del array de posibles valores y lo compara bien . Por ejemplo si es 0.30 el calcula =

if (wisselgeld(0.30) ==(false) bedragen [0])(1.90) { teruggave[1, 1] = 1; teruggave[2, 1] = 1; teruggave[3, 1] = 2; ] }

(en teruggave [0-5,1] guardo las cantidades de monedas )

Mi pregunta es porque si compara bien y por ejemplo dice 0.30 no es igual a 1.90 el programa de la el valor al array teruggave [ ,1] como si si fuera igual. Es igual con cualquier valor de cambio. Siempre le asigna los valores al array como si si fuera igual a 1.90.

Puede ser que haya otra forma de hacer esto y yo lo estoy haciendo muy complicado? porque el if no me funciona aqui?

Este es el metodo con el if=

void TerugGaveBedrag()

    {                     if (wisselgeld == bedragen [0])         {             teruggave[1, 1] = 1;             teruggave[2, 1] = 1;             teruggave[3, 1] = 2;                        }          else if (wisselgeld == bedragen [1])         {             teruggave[1, 1] = 1;             teruggave[2, 1] = 1;             teruggave[3, 1] = 1;             teruggave[4, 1] = 1;         }          else if (wisselgeld == bedragen[2])         {             teruggave[1, 1] = 1;             teruggave[2, 1] = 1;             teruggave[3, 1] = 1;          }         else if (wisselgeld == bedragen[3])         {             teruggave[1, 1] = 1;             teruggave[2, 1] = 1;             teruggave[4, 1] = 1;          }         else if (wisselgeld == bedragen[4])         {             teruggave[1, 1] = 1;             teruggave[2, 1] = 1;          }         else if (wisselgeld == bedragen[5])         {             teruggave[1, 1] = 1;                             teruggave[3, 1] = 2;                         }         else if (wisselgeld == bedragen[6])         {             teruggave[1, 1] = 1;             teruggave[3, 1] = 1;             teruggave[4, 1] = 1;         }         else if (wisselgeld == bedragen[7])         {             teruggave[1, 1] = 1;             teruggave[3, 1] = 1;         }         else if (wisselgeld == bedragen[8])         {             teruggave[1, 1] = 1;             teruggave[4, 1] = 1;         }         else if (wisselgeld == bedragen[9])         {             teruggave[1, 1] = 1;          }         else if (wisselgeld == bedragen[10])         {             teruggave[2, 1] = 1;             teruggave[3, 1] = 2;         }         else if (wisselgeld == bedragen[11])         {             teruggave[2, 1] = 1;             teruggave[3, 1] = 1;             teruggave[4, 1] = 1;         }         else if (wisselgeld == bedragen[12])         {             teruggave[2, 1] = 1;             teruggave[3, 1] = 1;         }         else if (wisselgeld == bedragen[13])         {             teruggave[2, 1] = 1;             teruggave[4, 1] = 1;         }         else if (wisselgeld == bedragen[14])         {             teruggave[2, 1] = 1;         }         else if (wisselgeld == bedragen[15])         {             teruggave[3, 1] = 2;          }         else if (wisselgeld == bedragen[16])         {             teruggave[3, 1] = 1;             teruggave[4, 1] = 1;         }         else if (wisselgeld == bedragen[17])         {             teruggave[3, 1] = 1;          }         else          {             teruggave[4,1] = 1;         }      }