C++ 如何使用此库将秒转换为分钟?
我有一个使用这个流行的,但我正在努力使用它转换从秒到分钟 下面的代码C++ 如何使用此库将秒转换为分钟?,c++,c++14,units-of-measurement,C++,C++14,Units Of Measurement,我有一个使用这个流行的,但我正在努力使用它转换从秒到分钟 下面的代码 #include <iostream> #include "units.h" int main(int argc, const char * argv[]) { { long double one = 1.0; units::time::second_t seconds; units::time::minute_t minutes(one);
#include <iostream>
#include "units.h"
int main(int argc, const char * argv[])
{
{
long double one = 1.0;
units::time::second_t seconds;
units::time::minute_t minutes(one);
seconds = minutes;
std::cout << "1 minute is " << seconds << std::endl;
}
{
long double one = 1.0;
units::time::second_t seconds(one);
units::time::minute_t minutes;
minutes = seconds;
std::cout << "1 second is " << minutes << std::endl;
}
return 0;
}
然而,我本以为它会产生
1 minute is 60 s
1 second is .016666667 m
我不知道您正在使用的库,但C++11添加了
std::chrono::duration
类,该类似乎可以执行您想要的操作:
#include <chrono>
#include <iostream>
int main()
{
{
std::chrono::minutes minutes(1);
std::chrono::seconds seconds;
seconds = minutes;
std::cout << "1 minute is " << seconds.count() << std::endl;
}
{
std::chrono::seconds seconds(1);
using fMinutes = std::chrono::duration<float, std::chrono::minutes::period>;
fMinutes minutes = seconds;
std::cout << "1 second is " << minutes.count() << std::endl;
}
return 0;
}
我不知道您正在使用的库,但C++11添加了
std::chrono::duration
类,该类似乎可以执行您想要的操作:
#include <chrono>
#include <iostream>
int main()
{
{
std::chrono::minutes minutes(1);
std::chrono::seconds seconds;
seconds = minutes;
std::cout << "1 minute is " << seconds.count() << std::endl;
}
{
std::chrono::seconds seconds(1);
using fMinutes = std::chrono::duration<float, std::chrono::minutes::period>;
fMinutes minutes = seconds;
std::cout << "1 second is " << minutes.count() << std::endl;
}
return 0;
}
库提供了一个
units::convert
方法,请检查文档
下面是一个工作片段:
long double one = 1.0;
units::time::second_t seconds(one);
units::time::minute_t minutes;
minutes = seconds;
std::cout << "1 second is " << minutes << std::endl;
std::cout << "1 second is "
<< units::convert<units::time::seconds, units::time::minutes>(seconds)
<< std::endl;
长双一=1.0;
单位:时间:秒(一);
单位::时间::分钟\u t分钟;
分=秒;
std::cout库提供了一个units::convert
方法,请检查文档
下面是一个工作片段:
long double one = 1.0;
units::time::second_t seconds(one);
units::time::minute_t minutes;
minutes = seconds;
std::cout << "1 second is " << minutes << std::endl;
std::cout << "1 second is "
<< units::convert<units::time::seconds, units::time::minutes>(seconds)
<< std::endl;
长双一=1.0;
单位:时间:秒(一);
单位::时间::分钟\u t分钟;
分=秒;
我很欣赏这个答案,但是我使用这个库是因为它支持许多不同的单元类型。我用时间作为例子。我很欣赏这个答案,但我使用这个库是因为它支持许多不同的单元类型。我用时间作为例子,太棒了!是bug阻止了我的方法工作吗?可能是因为units::time::minute\t
打印总是以秒表示。太好了!是bug阻止了我的方法工作吗?可能是因为units::time::minute\t
打印总是以秒表示。