Problema ao agendar tarefas usando a função clock ()

Eu gostaria de agendar tarefas em intervalos de tempo diferentes: a 0.1 seg, 0.9s .... 2s etc eu uso o clock () função C ++ que retorna o número de ticks desde o início da simulação e eu converto o número de ticks para segundos usando CLOCKS_PER_SEC, mas notei que a tarefa não está programada quando o instante é um ponto flutuante, mas quando é um número inteiro, isso acontece. Aqui a parte do código responsável pelo agendamento:

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 ; 

Nesse caso, não funciona, mas quando eu agendar a tarefa para ser feito em 3 segundos, por exemplo, funciona. É um problema de precisão?

questionAnswers(3)

yourAnswerToTheQuestion