Почему difftime возвращает только целые числа?

По некоторым причинам difftime возвращает только целые числа. Мой код довольно прост.

#include <time.h>

int main()
{
time_t test = time(NULL);
while (1)
{
std::cout << difftime(time(NULL), test) << std::endl;
}
}

Мой вывод выглядит

0...
1...
2...
3...

Разве difftime не должен возвращать дубли?

2

Решение

Функция time() возвращается к ближайшей секунде и difftime() просто возвращает разницу тех. Любое целое число минус целое число в целом является целым числом (но оно возвращается как двойное).

Кстати, для более точного таймера:

time_t test = clock();
while (1)
{
std::cout << float(clock() - test) / CLOCKS_PER_SEC << std::endl;
}
4

Другие решения

Это не имеет ничего общего с time () или difftime (). Это чисто Cout в C ++.

Посмотреть здесь: Как вывести двойное значение с полной точностью, используя cout?

1

int main()
{
time_t o_test, f_test;
time(&o_test);
while (1)
{
time(&f_test);
std::cout << difftime(f_test, o_test) << std::endl;
}
}
-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector