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