summaryrefslogtreecommitdiffstats
path: root/src/util/units.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/units.cpp')
-rw-r--r--src/util/units.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/util/units.cpp b/src/util/units.cpp
index dcb3ae4b1..01424520b 100644
--- a/src/util/units.cpp
+++ b/src/util/units.cpp
@@ -15,6 +15,7 @@
#include <cmath>
#include <cerrno>
+#include <iomanip>
#include <glib.h>
#include <glibmm/regex.h>
@@ -501,6 +502,18 @@ double Quantity::value(const Glib::ustring u) const
return value(unit_table.getUnit(u));
}
+/** Return a printable string of the value in the specified unit. */
+Glib::ustring Quantity::string(const Unit &u) const {
+ return Glib::ustring::format(std::fixed, std::setprecision(2), value(u)) + " " + unit->abbr;
+}
+Glib::ustring Quantity::string(const Glib::ustring u) const {
+ static UnitTable unit_table;
+ return string(unit_table.getUnit(u));
+}
+Glib::ustring Quantity::string() const {
+ return string(*unit);
+}
+
/** Convert distances. */
double Quantity::convert(const double from_dist, const Unit &from, const Unit &to)
{