disambiguate metric tonne (1,000kg) and US ton (2,000lb)

This commit is contained in:
Mathew Sutcliffe
2013-08-22 19:59:41 +01:00
parent 669af6b691
commit 74452599bf
3 changed files with 16 additions and 5 deletions

View File

@@ -78,7 +78,7 @@ int CSamplesPhysicalQuantities::samples()
a4.switchUnit(CAngleUnit::deg()); a4.switchUnit(CAngleUnit::deg());
qDebug() << a3 << a4; qDebug() << a3 << a4;
CMass w1(1, CMassUnit::t()); CMass w1(1, CMassUnit::tonne());
CMass w2(w1); CMass w2(w1);
w2.switchUnit(CMassUnit::lb()); w2.switchUnit(CMassUnit::lb());
qDebug() << w1 << w1.valueRoundedWithUnit(CMassUnit::kg()) << w2; qDebug() << w1 << w1.valueRoundedWithUnit(CMassUnit::kg()) << w2;

View File

@@ -488,15 +488,25 @@ public:
} }
/*! /*!
* \brief Tonne, aka metric tonne (1000kg) * \brief Tonne, aka metric ton (1000kg)
* \return * \return
*/ */
static const CMassUnit &t() static const CMassUnit &tonne()
{ {
static CMassUnit t(QT_TRANSLATE_NOOP("CMeasurementUnit", "tonne"), "t", 1000.0, 3); static CMassUnit t(QT_TRANSLATE_NOOP("CMeasurementUnit", "tonne"), "t", 1000.0, 3);
return t; return t;
} }
/*!
* \brief Short ton (2000lb) used in the United States
* \return
*/
static const CMassUnit &shortTon()
{
static CMassUnit ton(QT_TRANSLATE_NOOP("CMeasurementUnit", "short ton"), "ton", 907.18474, 3);
return ton;
}
/*! /*!
* \brief Pound, aka mass pound * \brief Pound, aka mass pound
* \return * \return
@@ -519,7 +529,8 @@ public:
u.append(CMassUnit::g()); u.append(CMassUnit::g());
u.append(CMassUnit::kg()); u.append(CMassUnit::kg());
u.append(CMassUnit::lb()); u.append(CMassUnit::lb());
u.append(CMassUnit::t()); u.append(CMassUnit::tonne());
u.append(CMassUnit::shortTon());
} }
return u; return u;
} }

View File

@@ -109,7 +109,7 @@ void CTestPhysicalQuantities::massTests()
{ {
CMass w1(1000, CMassUnit::kg()); CMass w1(1000, CMassUnit::kg());
CMass w2(w1.value(), CMassUnit::kg()); CMass w2(w1.value(), CMassUnit::kg());
w2.switchUnit(CMassUnit::t()); w2.switchUnit(CMassUnit::tonne());
QVERIFY2(w2.value() == 1, "1tonne shall be 1000kg"); QVERIFY2(w2.value() == 1, "1tonne shall be 1000kg");
w2.switchUnit(CMassUnit::lb()); w2.switchUnit(CMassUnit::lb());
QVERIFY2(w2.valueRounded(2) == 2204.62, "1tonne shall be 2204pounds"); QVERIFY2(w2.valueRounded(2) == 2204.62, "1tonne shall be 2204pounds");