From 1df46e55afb1f47d428b1cb18aa63d195efabc0e Mon Sep 17 00:00:00 2001 From: Daijiro Wachi Date: Tue, 9 Jun 2026 22:51:38 +0900 Subject: [PATCH] util: fix scientific notation formatting Signed-off-by: Daijiro Wachi --- lib/internal/util/inspect.js | 2 +- test/parallel/test-util-inspect.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index c611eb97fc0755..be3cc2de68829c 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -2206,7 +2206,7 @@ function formatNumber(fn, number, numericSeparator) { } return fn(addNumericSeparator(numberString), 'number'); } - if (NumberIsNaN(number)) { + if (NumberIsNaN(number) || StringPrototypeIncludes(numberString, 'e')) { return fn(numberString, 'number'); } diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index e60320d0591233..17034868b95c13 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -3844,6 +3844,12 @@ assert.strictEqual( '-0.123_45' ); } + + // Numbers in scientific notation should not get malformed separators + assert.strictEqual(util.inspect(1e-7, { numericSeparator: true }), '1e-7'); + assert.strictEqual(util.inspect(1.5e-10, { numericSeparator: true }), '1.5e-10'); + assert.strictEqual(util.inspect(1.23e-100, { numericSeparator: true }), '1.23e-100'); + assert.strictEqual(util.inspect(1.23456789e-12, { numericSeparator: true }), '1.23456789e-12'); } // Regression test for https://github.com/nodejs/node/issues/41244