c++ - 从 boost::chrono::steady_clock::now() 获得双倍

标签 c++ boost

如何从 boost::chrono::steady_clock::now() 获得 double 值? 我不相信为此有一个 .count() 参数。

为什么我需要这个?我有一个无法解析 boost 返回值的方法。

最佳答案

当我们把它们放在一起时,可以归结为:

auto now = boost::chrono::steady_clock::now().time_since_epoch();
auto timeSinceEpoch = boost::chrono::duration_cast<boost::chrono::milliseconds>(now).count();

虽然这不是 double 但足够接近:您可以更改 duration_cast 以获得您需要的任何精度和/或划分 timeSinceEpoch根据您的喜好,以便您的 double 符合您的要求。例如:

// Days since epoch, with millisecond (see duration_cast above) precision
double daysSinceEpoch = double(timeSinceEpoch) / (24. * 3600. * 1000.);

关于c++ - 从 boost::chrono::steady_clock::now() 获得双倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16700277/

相关文章:

c++ - 属性组合在 Boost::spirit 中不起作用

c++ - 在不阻塞/等待主操作的情况下启动新线程

c++ - boost::spirit::lex 的问题 - 标点符号

c++ - boost::statecart:如何定义某个状态的两个子状态,而不指定哪个是默认状态?

c++ - Sprintf 使用运行时定义的字符串和列表

c++ - Aix Visual Age C++ 从版本 8 移至版本 11 模板问题

c++ - 通过循环 C++ 打印报价单

c++ - std::async 有什么问题?

c++ - 是否有更惯用的方式来拆分 std::vector?

c++ - 使用 boost 属性树解析 JSON