JavaScript Rappresentazioni stringa di numeri


Esempio

JavaScript ha una conversione nativa da Number alla sua rappresentazione String per qualsiasi base da 2 a 36 .

La rappresentazione più comune dopo il decimale (base 10) è esadecimale (base 16) , ma il contenuto di questa sezione funziona per tutte le basi dell'intervallo.


Per convertire un numero da decimale (base 10) in esadecimale (base 16) rappresentazione di stringa, il metodo toString può essere utilizzato con radix 16 .

// base 10 Number
var b10 = 12;

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

Se il numero rappresentato è un numero intero, l'operazione inversa per questo può essere eseguita con parseInt e la radix 16 nuovo

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

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

Per convertire un numero arbitrario (cioè non intero) dalla sua rappresentazione in stringa in un numero , l'operazione deve essere divisa in due parti; la parte intera e la parte frazione.

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

Nota 1: Prestare attenzione al verificarsi di piccoli errori nel risultato a causa delle differenze in ciò che è possibile rappresentare in basi diverse. Potrebbe essere opportuno eseguire una sorta di arrotondamento in seguito.
Nota 2: Rappresentazioni di numeri molto lunghe possono anche causare errori dovuti all'accuratezza e ai valori massimi dei numeri dell'ambiente in cui si verificano le conversioni.