为什么 difftime 只返回整数?
Why is difftime Only Returning Whole Numbers?
出于某种原因,difftime 仅 returning 整数。我的代码很简单。
#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 不应该 return 双倍吗?
函数 time()
returns 到最接近的秒和 difftime()
只是 returns 它们的区别。任何整数减去一个整数基本上都是一个整数(但它以双精度返回)。
顺便说一句,为了更准确的计时器:
time_t test = clock();
while (1)
{
std::cout << float(clock() - test) / CLOCKS_PER_SEC << std::endl;
}
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;
}
}
这与time() 或difftime() 无关。纯c++中的cout。
看这里:How do I print a double value with full precision using cout?
出于某种原因,difftime 仅 returning 整数。我的代码很简单。
#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 不应该 return 双倍吗?
函数 time()
returns 到最接近的秒和 difftime()
只是 returns 它们的区别。任何整数减去一个整数基本上都是一个整数(但它以双精度返回)。
顺便说一句,为了更准确的计时器:
time_t test = clock();
while (1)
{
std::cout << float(clock() - test) / CLOCKS_PER_SEC << std::endl;
}
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;
}
}
这与time() 或difftime() 无关。纯c++中的cout。
看这里:How do I print a double value with full precision using cout?