From d3acc2cf753e72dc15f2a126a3d5df43f5e8561a Mon Sep 17 00:00:00 2001 From: Stefan Thomas Date: Wed, 5 Dec 2012 13:59:40 -0800 Subject: [PATCH] Fix fractional part in to_human(). --- src/js/amount.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/js/amount.js b/src/js/amount.js index dd96653c4..62b6a51e5 100644 --- a/src/js/amount.js +++ b/src/js/amount.js @@ -499,12 +499,16 @@ Amount.prototype.to_human = function (opts) if ("undefined" === typeof opts.group_sep) opts.group_sep = true; opts.group_width = opts.group_width || 3; - var denominator = this._is_native ? - consts.bi_xns_unit : - consts.bi_10.clone().pow(-this._offset); + var order = this._is_native ? consts.xns_precision : -this._offset; + var denominator = consts.bi_10.clone().pow(order); var int_part = this._value.divide(denominator).toString(10); var fraction_part = this._value.mod(denominator).toString(10); + // Add leading zeros to fraction + while (fraction_part.length < order) { + fraction_part = "0" + fraction_part; + } + int_part = int_part.replace(/^0*/, ''); fraction_part = fraction_part.replace(/0*$/, '');