为什么difftime只返回整数?

时间:2015-07-04 01:47:55

标签: c++ time 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返回双打吗?

3 个答案:

答案 0 :(得分:4)

函数time()返回到最近的秒,而difftime()只返回那些差异。任何整数减去一个整数基本上都是一个整数(但它以双精度返回)。

顺便说一句,为了更精确的计时器:

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

答案 1 :(得分:1)

这与time()或difftime()无关。它纯粹是c ++中的cout。

见这里:How do I print a double value with full precision using cout?

答案 2 :(得分:-1)

Super