C++ 将duration值获取为double
比方说,我有以下持续时间值:C++ 将duration值获取为double,c++,duration,chrono,C++,Duration,Chrono,比方说,我有以下持续时间值: auto duration=12h+15min+99s+99ms; 我想知道这是多少小时(双倍值) 当我执行auto hours=std::chrono::duration\u cast(duration)时,我会得到hours.count(),即int。获取整个持续时间的值(表示为双精度)的正确方法是什么 using namespace std::chrono; // Create a double-based hours duration unit usin
auto duration=12h+15min+99s+99ms;
我想知道这是多少小时(双倍值)
当我执行auto hours=std::chrono::duration\u cast(duration)
时,我会得到hours.count()
,即int
。获取整个持续时间的值(表示为双精度)的正确方法是什么
using namespace std::chrono;
// Create a double-based hours duration unit
using dhours = duration<double, hours::period>;
// Assign your integral-based duration to it
dhours h = 12h+15min+99s+99ms;
// Get the value
cout << h.count();
#包括
使用名称空间std::chrono_文本;
int main(){
自动持续时间=12.0h+15min+99s+99ms;
std::对我来说这听起来像是初等数学。一分钟是一小时的1/60,所以用分钟除以60就得到了小时数,然后把它加在总小时数上就得到了总小时数?起泡、冲洗、重复几秒钟和几毫秒。我看不到任何有效的理由来使用chrono库中的任何东西。哪一个p你不清楚这种简单的数学计算的艺术吗?是的,当然。我想问的是,是否有一种简单/默认的方法可以从计时器中获得我想要的值library@SamVarshavchik我想介绍一个反例——有一个初始状态,使用迭代器和sentinel在一个范围内迭代,并将一些逻辑/函数应用于它们是基本的。但是我们确实有
std::acculate
。我很清楚这个问题的意义。
cout << (12h+15min+99s+99ms)/1.0h << '\n';
#include<iostream>
#include<chrono>
using namespace std::chrono_literals;
int main() {
auto duration = 12.0h+15min+99s+99ms;
std::cout << std::chrono::duration_cast<std::chrono::duration<long double,std::ratio<3600,1>>>(duration).count();
}