Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 21 di 112
  • livello avanzato
Indice lezioni

Number, l'oggetto per rappresentare i numeri

L'oggetto Number fornisce metodi e proprietà per la manipolazione di valori numerici, per modificarne la rappresentazione e per effettuare comparazioni.
L'oggetto Number fornisce metodi e proprietà per la manipolazione di valori numerici, per modificarne la rappresentazione e per effettuare comparazioni.
Link copiato negli appunti

L'oggetto Number fornisce metodi e proprietà per la manipolazione di valori numerici. Possiamo creare un oggetto Number a partire da un'espressione numerica:

var x = new Number(123);
var y = new Number(3.14);

Possiamo anche usare Object per ottenere un oggetto Number partendo da un'espressione numerica, ma è preferibile utilizzare l'oggetto specifico per rendere più leggibile il codice.

Proprietà di Number

Tra le proprietà dell'oggetto Number segnaliamo:

Proprietà Descrizione
EPSILON La più piccola differenza tra la rappresentazione di due numeri (ECMAScript 6)
MAX_VALUE Il più grande numero positivo rappresentabile
MIN_VALUE Il più piccolo numero positivo rappresentabile diverso da zero
NaN Un valore non numerico
NEGATIVE_INFINITY Rappresenta il valore infinito negativo
POSITIVE_INFINITY Rappresenta il valore infinito positivo

È importante sottolineare che queste proprietà sono specifiche dell'oggetto Number e non vengono trasmesse alle singole istanze. Quindi per utilizzarle faremo sempre riferimento all'oggetto base come mostrato nel seguente esempio:

var x = new Number(239);
if (x < Number.MAX_VALUE) { 
	...
}

Metodi di Number

Tra i metodi di Number() abbiamo:

Metodo Descrizione
isFinite(n) Restituisce true se il numero n passato come argomento è un valore finito; false altrimenti (ECMAScript 6)
isInteger(n) Restituisce true se il numero n passato come argomento è un valore intero; false altrimenti (ECMAScript 6)
isNaN(n) Restituisce true se il numero n passato come argomento non è un valore numerico; false altrimenti
(ECMAScript 6)

Utile notare che, a differenza delle analoghe funzioni globali, i metodi di Number elencati non effettuano alcuna conversione di tipo sul valore passato come argomento, quindi possiamo ottenere risultati differenti come mostra il seguente esempio:

var x = isFinite("123");         // ritorna 'true' perché trasforma la stringa
var y = Number.isFinite("123");  // ritorna 'false'

La variabile x avrà il valore true, dal momento che JavaScript effettua implicitamente la conversione della stringa in valore numerico, mentre y avrà valore false.

Un oggetto di tipo Number può essere utilizzato in qualsiasi espressione in cui può essere utilizzato un valore numerico. Esso verrà implicitamente convertito in valore numerico per valutare l'espressione. Quindi possiamo scrivere espressioni come la seguente senza doverci preoccupare di effettuare conversioni esplicite:

var x = new Object(123);
x = x + 1;

Dopo l'esecuzione del codice avremo l'oggetto x con valore 124.

Metodi di rappresentazione

Ciascuna istanza di un oggetto Number ha a disposizione tre metodi di rappresentazione: toExponential(), toFixed() e toPrecision().

Il metodo toExponential() restituisce la rappresentazione esponenziale del suo valore numerico sotto forma di stringa:

var x = new Object(123);
var y = x.toExponential();

La variabile y sarà una stringa con valore "1.23e+2".

Il metodo toFixed() restituisce una stringa rappresentante il valore numerico formattato con un numero fisso di cifre decimali. Il metodo prevede un parametro opzionale che rappresenta il numero di posizioni da prevedere dopo il separatore decimale. Se non viene passato nessun parametro si assume l'assenza di valori decimali:

var x = new Object(123.4);
var y = x.toFixed();
var z = x.toFixed(2);

La variabile y conterrà il valore "123" mentre z avrà la stringa "123.40".

Infine, il metodo toPrecision() prende come argomento un valore numerico opzionale e restituisce una stringa che rappresenta il numero alla precisione specificata, cioè restituisce una rappresentazione che prende in considerazione il numero di cifre significative specificate. Il seguente codice mostra alcuni esempi di uso del metodo con il loro risultato:

var x = new Number(123.4);
x.toPrecision();	//"123.4"
x.toPrecision(1);	//"1e+2"
x.toPrecision(2);	//"1.2e+2"
x.toPrecision(3);	//"123"
x.toPrecision(4);	//"123.4"
x.toPrecision(5);	//"123.40"
x.toPrecision(6);	//"123.400"

Dall'esempio possiamo notare come la rappresentazione con un numero di cifre inferiore a quelle previste per la parte intera del numero è in notazione esponenziale. Inoltre, se non si specifica alcun parametro viene restituito la rappresentazione in stringa del valore numerico. Infine, i possibili valori previsti come argomento del metodo per specificare la precisione vanno da 1 fino ad un massimo di 21.

Ti consigliamo anche