Come risolvere i problemi in virgola mobile in JavaScript

August 15

Come risolvere i problemi in virgola mobile in JavaScript


JavaScript è un linguaggio semplice, efficiente in grado di aggiungere funzionalità e stile a un sito web. Prima di aggiungere uno script in una pagina per eseguire le conversioni o calcoli, è necessario essere a conoscenza di un difetto nel modo in cui gestisce i numeri in virgola mobile JavaScript. numeri in virgola mobile, o galleggianti, sono numeri che contengono frazioni decimali. Grazie al metodo JavaScript per memorizzare questi numeri, i risultati dei calcoli semplici possono talvolta essere sorprendente. Aggiungendo i numeri 0,01 e 0,06 con JavaScript dà un risultato di 0,069,999 mila. Fortunatamente, c'è un modo semplice per risolvere questo problema.

istruzione

1 Assegnare un valore a virgola mobile a due variabili utilizzando l'operatore di assegnazione:

FirstFloat = 0.01;
SecondFloat = 0.06;

2 Moltiplicare entrambi i valori per 10.000 con le seguenti affermazioni:

FirstFloat = FirstFloat

10000;
SecondFloat = SecondFloat 10000;

3 Aggiungere entrambe le variabili e assegnare il risultato di una terza variabile con questo codice:

Risultato = FirstFloat + SecondFloat;

4 Dividere la somma da 10.000 a trovare la risposta corretta con la seguente dichiarazione:

Risultato = Risultato / 10000;

5 Uscita la risposta sullo schermo utilizzando la funzione document.write:

document.write (risultato);

Consigli e avvertenze

  • Aumentare la precisione dei risultati, aumentando il moltiplicatore e divisore. Cambiare entrambi i valori a 100 produce due decimali di accuratezza. Ogni spostamento d'aggiunto alla fine del moltiplicatore / divisore aggiunge un'altra decimale di accuratezza.
  • Questo metodo funziona su tutte le operazioni aritmetiche. Moltiplicare ogni variabile prima di eseguire l'operazione desiderata. Dividere la risposta prima di stampare o di utilizzarlo in un altro calcolo.
  • Il moltiplicatore e divisore nella dichiarazione di arrotondamento deve sempre avere valori equivalenti.