Une grande chaîne entière peut dépasser la plage où Number distingue deux entiers voisins. Passer par Number peut modifier silencieusement la valeur avant le rendu dans une autre base. NumberBase conserve analyse, signe, calcul et sortie dans le domaine entier.
La validation précède le calcul
L’analyseur vérifie signe facultatif, chiffres non vides, limite de longueur, correspondance et chiffre < base sur toute l’entrée. Un suffixe z en décimal invalide tout ; aucun résultat partiel d’un préfixe valide comme avec parseInt.
Chaque multiplication et addition reste exacte
La base et les chiffres deviennent BigInt avant valeur = valeur × base + chiffre. Le signe s’applique une fois la valeur absolue complète. L’entier exact est rendu avec une base 2–36, des lettres majuscules et sans notation exponentielle.
La précision arbitraire exige tout de même une limite
BigInt supprime le dépassement à largeur fixe, sans rendre une entrée illimitée gratuite. NumberBase limite la chaîne à 4096 chiffres, valide avant le rendu et effectue une accumulation linéaire. C’est une limite de ressources, pas d’arrondi : toute entrée acceptée reste exacte.