한 장치에서 다른 장치로 값을 변환하고 싶다면 가장 간단한 방법은 무엇입니까?Boost :: units을 사용하여 두 수량 사이를 변환하는 가장 간단한 방법은 무엇입니까?
예를 들어, 미터에 값을 저장하려고하지만 마일로 지정하고 싶습니다.
이 작업을 수행하는 대부분의 예제는 여러 줄로 길고 typedef 및 단위 정의를 포함하며 단순한 단위없는 출력을 제공하지 않습니다.
한 장치에서 다른 장치로 값을 변환하고 싶다면 가장 간단한 방법은 무엇입니까?Boost :: units을 사용하여 두 수량 사이를 변환하는 가장 간단한 방법은 무엇입니까?
예를 들어, 미터에 값을 저장하려고하지만 마일로 지정하고 싶습니다.
이 작업을 수행하는 대부분의 예제는 여러 줄로 길고 typedef 및 단위 정의를 포함하며 단순한 단위없는 출력을 제공하지 않습니다.
이 작업을 빠르고 쉽게 수행 할 수있는 두 가지 방법이 있습니다.
#include <boost/units/systems/si/length.hpp>
#include <boost/units/base_units/imperial/mile.hpp>
double distance_in_metres = 100.0 *
boost::units::conversion_factor(
boost::units::imperial::mile_base_unit::unit_type(),
boost::units::si::meter
);
:
#include <boost/units/quantity.hpp>
#include <boost/units/systems/si/length.hpp>
#include <boost/units/base_units/imperial/mile.hpp>
double distance_in_metres = boost::units::quantity<boost::units::si::length>(
100.0 * boost::units::imperial::mile_base_unit::unit_type()
)/boost::units::si::meter;
두 번째는 그하여 변환 계수 및 증식을 작성
는명시 적으로 첫 번째는 양을 구성 ... 당신이 미터 100 마일을 변환 할 말
hmmm - 다음을 사용합니다.
#include <boost/units/quantity.hpp>
#include <boost/units/systems/si/length.hpp>
#include <boost/units/base_units/imperial/mile.hpp>
using namespace boost::units;
quantity<si::length> distance_in_metres = static_cast<quantity<si::length> >(
100.0 * boost::units::imperial::mile_base_unit::unit_type()
);
참고 - 나는 CPPcon 2015에서 부스트 장치에 대한 자습서 프리젠 테이션을했다 - 당신이 https://www.youtube.com/watch?v=qphj8ZuZlPA
에서 찾을 수 있습니다 정적 캐스트 때문에 정밀도의 잠재적 손실 필요하다? –
si :: length는 길이 (미터)입니다. 100.0 * boost :: units :: imperial :: mile_base_unit :: unit_type()은 몇 마일입니까? 정적 캐스트는 마일 수를 미터 단위로 측정되는 길이 수량으로 변환합니다. –