void captura(){ float monto,pago,cambio=0; printf("Programa que calcula el cambio con monedas"); printf("\nInserte el total a pagar >"); scanf("%f",&monto); // Lo probe y en mi caso capture 4.63, pero guardo // 4.6300001144, como podras notar tu mismo con .10f printf("%.10f\n", monto); printf("Inserte el dinero recibido >"); scanf("%f",&pago); printf("%.10f\n", pago); cambio=pago-monto; // al poner .10f notaras que el valor de cambio en // realidad es 5.3699998856 y no 5.37 como pensabas printf("Su cambio es %.10f",cambio); monedas(cambio);}