gpt4 book ai didi

c++ - 在后续调用中获得相同的时间戳值

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:34:43 26 4
gpt4 key购买 nike

每当我调用这个函数时,我都试图在 float 中获取最多毫秒的 unix 时间戳,这可能是 30 次/秒。下面的函数返回的时间戳总是相同的,但是,当我将它打印到 std::cerr 时,我得到了不同的值。我每次调用函数时都会创建变量,所以我不确定我在这里做错了什么。任何帮助将不胜感激。

    float GetUnixTimestamps()
{
float milliseconds_since_epoch =
std::chrono::duration_cast<std::chrono::milliseconds>
(std::chrono::system_clock::now().time_since_epoch()).count();

std::cerr << milliseconds_since_epoch << std::endl;
return milliseconds_since_epoch;
}

编辑:根据建议我正在使用 C++ 11,需要在 Windows x64、x86 和 Linux(主要是 Ubuntu 和 CentOS)上编译它。我想在 unix 中获取当前时间。我已经阅读了 S.O 的帖子 1955512116177295但时间戳的值仍然保持不变。

最佳答案

float 的精度不够好,无法在此处执行您想要的操作。当前自 1970-01-01 以来的毫秒数约为 1,478,020,169,728。 float 中的下一个可表示值是 1,478,020,300,800。那是大约 131 秒(2 分钟)之后。

double 将在这里执行。

关于c++ - 在后续调用中获得相同的时间戳值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40364473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com