cco*_*ook 6 c++ boost boost-units
我需要将数量的值传递给库进行评估.该压单元库发生在SI双重价值,所以压单元库是确保需求非常有吸引力.但是,我该如何将数量转换为双倍值?文档和示例似乎避免了这种情况,因为其意图是维护单元.
就像是:
quantity<pressure> p(101.1 * kilo * pascals);
double dblP = static_cast<double>(p); // double value in Pascals
Run Code Online (Sandbox Code Playgroud)
通过标题建议......这是投射到基类型的正确方法吗?
p.value();
Run Code Online (Sandbox Code Playgroud)
我想你要找的是这个:
quantity<pressure> p(101.1 * kilo * pascals);
double dblP = p / pascals; // double value in Pascals
Run Code Online (Sandbox Code Playgroud)
如果你将单位分开,你将留下一个quantity<dimensionless>隐含地转换为a的单位double.这消除了内部表示(value()返回)单位的任何问题.
小智 6
刚发现这个.我认为预期的方法是使用Boost的quantity_cast运算符.
quantity<pressure> p(101.1 * kilo * pascals);
double dblP = quantity_cast<double>(p);
Run Code Online (Sandbox Code Playgroud)