JavaScript Représentations de chaînes de nombres


Exemple

JavaScript a une conversion native de Number en une représentation String pour toute base de 2 à 36 .

La représentation la plus courante après la décimale (base 10) est hexadécimale (base 16) , mais le contenu de cette section fonctionne pour toutes les bases de la plage.


Afin de convertir un nombre de décimales (base 10) à sa hexadécimal (base 16) représentation de chaîne la méthode toString peut être utilisé avec radix 16 .

// base 10 Number
var b10 = 12;

// base 16 String representation
var b16 = b10.toString(16); // "c"

Si le nombre représenté est un nombre entier, l'opération inverse peut être effectuée avec parseInt et la base 16 nouveau

// base 16 String representation
var b16 = 'c';

// base 10 Number
var b10 = parseInt(b16, 16); // 12

Pour convertir un nombre arbitraire (c.-à-d. Non entier) de sa représentation sous forme de chaîne en un nombre , l'opération doit être divisée en deux parties; la partie entière et la partie fraction.

6
let b16 = '3.243f3e0370cdc';
// Split into integer and fraction parts
let [i16, f16] = b16.split('.');

// Calculate base 10 integer part
let i10 = parseInt(i16, 16); // 3

// Calculate the base 10 fraction part
let f10 = parseInt(f16, 16) / Math.pow(16, f16.length); // 0.14158999999999988

// Put the base 10 parts together to find the Number
let b10 = i10 + f10; // 3.14159

Note 1: Soyez prudent car de petites erreurs peuvent être dans le résultat en raison de différences dans ce qui peut être représenté dans différentes bases. Il peut être souhaitable d'effectuer un arrondi après.
Remarque 2: Les très longues représentations de nombres peuvent également entraîner des erreurs en raison de la précision et des valeurs maximales des nombres d’environnement dans lesquels les conversions ont lieu.