Javascript dispone di un solo tipo per i valori numerici chiamati " numero " per gestire interi e valori in virgola mobile . Sotto il cofano , i numeri è un valore a doppia precisione a 64 bit . Mentre in realtà , i numeri possono essere infinitamente preciso, un computer ha una quantità limitata di spazio per la memorizzazione di valori decimali. Questa restrizione porta a "errori di arrotondamento " che introducono piccole imprecisioni nei vostri calcoli . È possibile tagliare via questi errori con metodi JavaScript incorporati . Istruzioni
1
Scrivi il codice per eseguire il calcolo. Assegnare il risultato a una variabile . Per esempio :
var a = 2;
var b = 1,11 ;
var result = a + b ;
In questo esempio, " risultato "tiene inaspettatamente il valore" 3,1100000000000003 "invece del corretto" 3.11 ". La differenza nel risultato calcolato e il risultato corretto è causato dal computer di errore di arrotondamento in virgola mobile .
2
Usare il " Number.toFixed ( cifre) " metodo per tagliare il risultato fino a un numero ragionevole di cifre dopo il punto decimale . Utilizzando 12 per il parametro " cifre " dovrebbe tagliare l' errore durante lasciando con un valore ben preciso . L' ( cifre) metodo Number.toFixed turni il valore per il dato numero di cifre e restituisce il valore come stringa . Per esempio :
risultato
= result.toFixed ( 12) ;
In questo esempio, il risultato ora detiene il valore stringa " 3,110 miliardi " con cifre decimali in più pieni di "0 ". Se si lavora con valori di valuta , è possibile utilizzare 2 o 3 per "cifre" a seconda del livello di precisione che vi serve nei calcoli.
3
Converti il tuo valore di nuovo in un floating point valore utilizzando il built-in " parseFloat ( valore stringa ) " metodo se è necessario utilizzarli per i calcoli o funzioni aggiuntive . Il metodo parseFloat ( valore stringa ) converte la rappresentazione di stringa di un numero in un numero in virgola mobile . Per esempio :
risultato
= parseFloat ( risultato) ;
In questo esempio, il risultato ora detiene il valore numerico "3.11 ".
< Br >