From c7b09b8efc5a8257552e0787fd86897bd122f3e4 Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Thu, 10 Dec 2020 18:43:04 +0100 Subject: [PATCH] JS -- fix printd issue with negative number --- src/scripting_api/util.js | 4 ++-- test/unit/scripting_spec.js | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/scripting_api/util.js b/src/scripting_api/util.js index 8805a48ee..1e0ccdd8b 100644 --- a/src/scripting_api/util.js +++ b/src/scripting_api/util.js @@ -154,9 +154,9 @@ class Util extends PDFObject { let decPart = ""; if (cConvChar === "f") { if (nPrecision !== undefined) { - decPart = (arg - intPart).toFixed(nPrecision); + decPart = Math.abs(arg - intPart).toFixed(nPrecision); } else { - decPart = (arg - intPart).toString(); + decPart = Math.abs(arg - intPart).toString(); } if (decPart.length > 2) { decPart = `${decimalSep}${decPart.substring(2)}`; diff --git a/test/unit/scripting_spec.js b/test/unit/scripting_spec.js index b30ef1a71..9162bc14d 100644 --- a/test/unit/scripting_spec.js +++ b/test/unit/scripting_spec.js @@ -209,6 +209,11 @@ describe("Scripting", function () { expect(value).toEqual("Decimal number: + 1.235"); } ), + myeval(`util.printf("Decimal number: %,0.2f", -12.34567)`).then( + value => { + expect(value).toEqual("Decimal number: -12.35"); + } + ), ]).then(() => done()); });