Вы сравниваете числа с плавающей запятой на точное равенство, а это часто приводит к неправильному результату, т.к. такие числа по определению не точны.
Некоторые числа представимы точно, например, ноль, так что неудивительно, что как раз ноль вы и видите чаще.
Насколько я понял вам надо, чтобы t было кратно t_out.
Если допустить неточность eps, то такая проверка будет выглядеть так:
Код:
if ( fabs(fmod(t, t_out)) <= eps || fabs(fmod(t, t_out)) >= 1-eps )
Понятно, что лучше вычислить выражение fabs(fmod(t, t_out)) только раз.