summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--amount.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/amount.cc b/amount.cc
index 1fe2ecdd..b2588fc2 100644
--- a/amount.cc
+++ b/amount.cc
@@ -812,10 +812,14 @@ std::ostream& operator<<(std::ostream& _out, const amount_t& amt)
if (precision) {
out << ((comm.flags & COMMODITY_STYLE_EUROPEAN) ? ',' : '.');
+ char * p = mpz_get_str(NULL, 10, rquotient);
+ int len = std::strlen(p);
+ if (len < precision)
+ precision = len < comm.precision() ? comm.precision() : len;
+
out.width(precision);
out.fill('0');
- char * p = mpz_get_str(NULL, 10, rquotient);
out << p;
std::free(p);
}