Une sortie inattendue dans la fonction parseInt() nécessite une clarification

J'ai travaillé sur un projet JavaScript dans lequel je reçois les entrées de l'utilisateur sous forme de chaînes et je dois les convertir en entiers à l'aide de la méthode parseInt(). Cependant, j'ai rencontré un problème qui produit des résultats inattendus.
Code:
function convertToInteger(input) {
    return parseInt(input);
}

let userInput = "10";
let result = convertToInteger(userInput);

console.log("User input:", userInput);
console.log("Converted result:", result);
La plupart du temps, ce code fonctionne comme prévu. Lorsque la chaîne d'entrée comporte un zéro non significatif, tel que "012", la méthode parseInt() l'interprète comme un entier octal et renvoie 10 au lieu du 12 prévu.

Je me demande comment je peux gérer le problème de base et m'assurer que la méthode parseInt() traite toujours l'entrée comme un nombre décimal, comme le montre cet exemple par scaler. Toute suggestion sur la façon de modifier le code pour ce faire serait très appréciée.

Merci pour votre aide!
 
Bonsoir,

Peut-être que tu as fait une erreur lorsque tu as encodé la valeur dans le input?

Il ne devrait pas te retourner "10" en output, si tu as entré "012" tu devrais obtenir "12" en sortie.

1694457823905.png
 
Haut