从boost :: chrono :: steady_clock :: now()获取双倍

bge*_*ge0 4 c++ boost

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

我为什么需要这个?我有一个方法无法解析提升返回.

sya*_*yam 9

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

auto now = boost::chrono::steady_clock::now().time_since_epoch();
auto timeSinceEpoch = boost::chrono::duration_cast<boost::chrono::milliseconds>(now).count();
Run Code Online (Sandbox Code Playgroud)

当然,这不是一个double但足够接近:你可以改变它duration_cast以获得你需要的任何精度和/或timeSinceEpoch根据自己的喜好划分,以double满足你的要求.例如:

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


kir*_*gum 8

你可以double在里面指定duration:

auto some_time = std::chrono::high_resolution_clock::now();
double duration = std::chrono::duration_cast<std::chrono::duration<double>>(some_time).count();
Run Code Online (Sandbox Code Playgroud)