Problema al programar tareas usando la función clock ()

Me gustaría programar tareas en diferentes intervalos de tiempo: a 0.1 s, 0.9 s ... 2 s, etc. Utilizo la función clock () C ++ que devuelve el número de tics desde el comienzo de la simulación y convierto el número de tics a segundos usando CLOCKS_PER_SEC pero me he dado cuenta de que la tarea no está programada cuando el instante es un flotador, pero cuando es un entero, lo hace. Aquí la parte del código responsable de la programación:

float goal = (float) clock() / CLOCKS_PER_SEC + 0.4 ;  // initially (float) clock() / CLOCKS_PER_SEC = 0 ; 
if ((float) clock() / CLOCKS_PER_SEC == goal) 
     do stuff ; 

En ese caso, no funciona, pero cuando programo la tarea para que se realice en 3 segundos, por ejemplo, funciona. ¿Es un problema de precisión?

Respuestas a la pregunta(3)

Su respuesta a la pregunta