# JavaScript/Oggetto Math

JavaScript
Copertina Tutti i moduli · Sviluppo
* IntroduzioneJavaScript/Introduzione
* Il nostro primo programmaJavaScript/Il nostro primo programma
* Tipi di dati e variabiliJavaScript/Tipi di dati e variabili
* Operatori e castingJavaScript/Operatori e casting
* Le strutture di controllo
** SelezioneJavaScript/Selezione
** IterazioneJavaScript/Iterazione
* Funzioni definite dall'utenteJavaScript/Funzioni definite dall'utente
* Programmazione ad oggettiJavaScript/Oggetti
** Oggetto StringJavaScript/Oggetto String
** Oggetto MathJavaScript/Oggetto Math
** Oggetto DateJavaScript/Oggetto Date
** Oggetto ArrayJavaScript/Oggetto Array
* CookieJavaScript/Cookie
* TimerJavaScript/Timer
* L'oggetto windowJavaScript/BOM
** Gli eventi nel BOMJavaScript/Gli eventi nel BOM
** Oggetto documentJavaScript/Oggetto document
** Altri oggetti del BOMJavaScript/Altri oggetti del BOM
* Il Document Object ModelJavaScript/DOM
** Proprietà e metodiJavaScript/Proprietà e metodi del DOM
** Gli eventi nel DOMJavaScript/Gli eventi nel DOM
* Espressioni regolariJavaScript/Espressioni regolari
* AJAX
** Introduzione ad AJAXJavaScript/Introduzione ad AJAX
** Usare AJAXJavaScript/Usare AJAX
* Costruttori e prototipiJavaScript/Costruttori e prototipi
* AppendiceJavaScript/Appendice
* CreditiJavaScript/Crediti
Modifica il sommario
L'oggetto Math mette a disposizione dello sviluppatore JavaScript numerose funzioni e costanti matematiche; è un oggetto particolare, in quanto non richiede di lavorare su istanze di oggetti ma permette di accedere ai suoi metodi usando la notazione:

## Proprietà

Le proprietà dell'oggetto Math consistono in diverse costanti matematiche:
* PI: restituisce il valore approssimato di Pi greco
* E: restituisce il valore della costante matematica E
* LN2 e LN10: il valore del logaritmo naturale di 2 e di 10
Ovviamente sono tutte proprietà di sola lettura

## Metodi

Ecco una lista dei metodi corrispondenti alle principali funzioni matematiche e trigonometriche:
* abs: restituisce il valore assoluto (o modulo) del numero fornito come argomento
* min e max: restituiscono il minimo e il massimo tra i due numeri passati come parametri
* sqrt e pow(b, n): restituiscono la radice quadrata del numero passato o l'nesima potenza del numero b
* sin, cos e tan: restituiscono il seno, il coseno e la tangente trigonometrica dell'angolo passato in radianti
* log: restituisce il logaritmo naturale in base $e\;$ del numero passato come parametro

### Arrotondare i numeri

Per l'arrotondamento l'oggetto Math mette a disposizione tre metodi:
* ceil: arrotonda il numero al numero intero maggiore più vicino (per eccesso). Ad esempio:
* floor: arrotonda l'oggetto al numero intero minore più vicino (per difetto). Ad esempio:
* round: arrotonda l'oggetto per eccesso se la parte decimale è maggiore o uguale a 5, altrimenti arrotonda per difetto:
Tutte queste tre funzioni differiscono da parseInt che non arrotonda i numeri, bensì li tronca. Ad esempio:

### Generare numeri casuali

L'uso di Math permette anche di generare numeri (pseudo) casuali tramite il metodo:
che restituisce un numero casuale decimale compreso tra 0 (incluso) e 1 (escluso). Nella pratica non è molto utile se non viene trasformato in un numero intero. Ad esempio questo codice simula il lancio di un dado:
La riga che ci interessa è quella dell'assegnazione della variabile lancio. Per capire l'algoritmo usato, ragioniamo sul risultato che vogliamo ottenere. Il numero che vogliamo ottenere (che chiameremo d) deve essere un numero intero compreso tra 1 e 6 inclusi. Dal momento che il generatore restituisce numeri tra 0 incluso e 1 escluso, dovremo:
* moltiplicare per sei il numero casuale ottenuto (che chiameremo n): in questo modo possiamo ottenere un numero che va da 0 (se n = 0, allora d = 0) fino a sei escluso. Infatti d potrebbe essere uguale a 6 solo se n potesse essere uguale a 1, cosa che non è possibile
* sommare uno al valore ottenuto: in questo modo d sarà compreso tra 1 (incluso) e 7 (escluso)
* arrotondare il valore per difetto: in questo modo d sarà un numero intero compreso tra 1 e 6; infatti, dato che il 7 è escluso, arrotondando per difetto potremo ottenere al massimo 6.

## Un esempio pratico

Di seguito viene mostrata un'applicazione pratica dei metodi dell'oggetto Math per la creazione di una funzione che arrotondi le cifre alla nesima cifra decimale indicata.
La funzione appena mostrata arrotonda il numero fornito come primo parametro alla cifra decimale fornita come secondo parametro usando diversi metodi di arrotondamento. Il tutto sta nel fatto che le funzioni di Math agiscono solo sui numeri interi e non su quelli decimali. Per effettuare gli arrotondamenti, quindi, spostiamo la virgola di n posizioni decimali fornite come parametro ed eseguiamo l'arrotondamento desiderato; successivamente, spostiamo di nuovo la virgola all'indietro. Per spostare la virgola è sufficiente moltiplicare e dividere per una potenza di dieci: per fare ciò ci serviamo del metodo Math.pow