Skip to content

Commit 1766d8e

Browse files
committed
Trim trailing zeros in mask. Fixes #18
1 parent cd02901 commit 1766d8e

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/format.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,11 @@ function processValue(value, maskObj, options) {
5555
// Fix the decimal first, toFixed will auto fill trailing zero.
5656
valObj.value = Number(valObj.value).toFixed(maskObj.fraction && maskObj.fraction.length);
5757
// Convert number to string to trim off *all* trailing decimal zero(es)
58-
valObj.value = valObj.value.toString();
58+
valObj.value = Number(valObj.value).toString();
5959

6060
// Fill back any trailing zero according to format
6161
// look for last zero in format
6262
const posTrailZero = maskObj.fraction && maskObj.fraction.lastIndexOf("0");
63-
6463
let [valInteger = "0", valFraction = ""] = valObj.value.split(".");
6564
if (!valFraction || (valFraction && valFraction.length <= posTrailZero)) {
6665
valFraction = (Number("0." + valFraction).toFixed(posTrailZero + 1)).replace("0.", "");

test/test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ test("Precision", t => {
5757
t.is(format("##,000.", 123456789.987654321), "123,456,790");
5858
t.is(format("###,####.", 123456789.187654321), "1,2345,6789");
5959
t.is(format("#'###'#00,", 123456789.087654321), "123'456'789");
60+
t.is(format("#,##0.####", 1234567.890), "1,234,567.89");
61+
t.is(format("#,##0.###0", 1234567.890), "1,234,567.8900");
62+
t.is(format("#,##0.##0#", 1234567.890), "1,234,567.890");
63+
t.is(format("#,##0.#0##", 1234567.890), "1,234,567.89");
64+
t.is(format("#,##0.#", 1234567.890), "1,234,567.9");
65+
t.is(format("#,###.", 1234567.890), "1,234,568");
6066
});
6167

6268
/* Mask with prefix and/or suffix */

0 commit comments

Comments
 (0)