util.inspect: incorrect numericSeparator formatting for numbers in scientific notation (e.g. 1e-7)
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 122k
- Forks
- 37.4k
- Merge moyen
- 4 j 3 h
- PR mergées (30 j)
- 272
Description
Version
v24.14.0
Platform
Linux DESKTOP-59R7A1D 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 GNU/Linux
Subsystem
util.inspect
What steps will reproduce the bug?
const util = require('util');
console.log(util.inspect(1e-7, { numericSeparator: true }));
How often does it reproduce? Is there a required condition?
Always reproducible when:
numericSeparatoris set totrue- The number is formatted using scientific notation (e.g.
1e-7,1e+21)
What is the expected behavior? Why is that the expected behavior?
The output should remain a valid numeric string representation.
For example:
'1e-7'
Scientific notation should either:
- remain unchanged, or
- be properly expanded before applying numeric separators
But it should never produce malformed output.
What do you see instead?
Malformed and corrupted output:
'1e-.1e-_7'
This happens because the formatting logic assumes that any non-integer number contains a decimal point (.), and attempts to split the string accordingly. However, scientific notation strings like '1e-7' do not contain a decimal point, leading to incorrect string slicing and separator insertion.
Additional information
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le point d’entrée util.inspect et reproduisez l’exemple fourni de numericSeparator avec Node.js. Suivez le chemin de formatage de la notation scientifique et vérifiez que le résultat reste une chaîne numérique valide ; ajoutez une couverture de régression pour 1e-7 et 1e+21 si les tests environnants offrent un emplacement approprié.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, node.js
- Domaine
- devtools
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 66/100