c++ - 将持续时间值设为双倍
问题描述
假设,我有以下持续时间值:
auto duration=12h+15min+99s+99ms;
我想知道那是多少小时(作为双值)。
当我这样做时auto hours=std::chrono::duration_cast<std::chrono::hours>(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();
或者,只需将基于积分的持续时间除以一个 double-based hours
:
cout << (12h+15min+99s+99ms)/1.0h << '\n';
推荐阅读
- c# - 如何在 MVVM Xamarin Forms 中将参数传递给 Singleton
- angular - 隐藏来自浏览器开发者工具网络的 Angular API 调用
- java - Scaledrone 基本聊天不显示消息
- android - react-native-firebase v4.2.0 - 无法找到 gradle 文件
- django - 如何使用表单控件检查 Angular 6 文本框中的负值
- java - (Java) 未发送所需的 SSL 证书(在 curl 调用中使用时工作正常)
- python - 处理自定义代码中的 NoneType 异常
- python - Python subprocess.Popen() 和 stdout 文件对象关联
- php - PHP:将表单数据传递到第三个文件而不在第二个文件中更改它
- r - UseMethod("predict") 中的错误:没有适用于 'predict' 的方法应用于类“c('double', 'numeric') 的对象