Tengo un problema con decimales, quiero comprobar cuantos 0.01 existen en mi variable paso un valor 2.01 pero aparece 2.00999 y cuando le resto el dos no alcanza al 0.01 entonces no puedo saber si existe esa décima o no, como solucionaría ese problema? se me ocurre dividir por 0.00999 pero no creo que sea la mejor forma.
float cambio = 0; int cantidad = 0;
std::cin>>cambio; // ingreso 2.01 pero obtiene 2.00999 (un numero periódico)
cambio -= cantidad*2; // aquí elimino el dos
cantidad = cambio/0.01; // pero al ser 0.009 (un numero periódico) no alcanza a ser dividido por 0.01
edito: lo he solucionado de la siguiente forma pero no creo que sea correcto lo que estoy haciendo.
cantidad = (int)((cantidad*1000)/9);