4

How would I get a double value from boost::chrono::steady_clock::now()? I don't believe there is a .count() parameter for this.

Why do I need this? I have a method that cannot parse the boost return.

4

2 回答 2

9

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

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

当然,这还double不够接近:您可以更改duration_cast以获得所需的任何精度和/或根据自己的喜好划分,timeSinceEpochdouble满足您的要求。例如:

// Days since epoch, with millisecond (see duration_cast above) precision
double daysSinceEpoch = double(timeSinceEpoch) / (24. * 3600. * 1000.);
于 2013-05-22T19:56:28.263 回答
9

你可以double在里面指定duration

auto some_time = std::chrono::high_resolution_clock::now();
double duration = std::chrono::duration_cast<std::chrono::duration<double>>(some_time).count();
于 2013-06-24T23:39:12.180 回答