Movatterモバイル変換


[0]ホーム

URL:


Vai al contenuto
WikibooksPensa liberamente, impara liberamente
Ricerca

JavaScript/Oggetto Math

Wikibooks, manuali e libri di testo liberi.
<JavaScript
Indice del libro

JavaScript

Copertina

Tutti i moduli ·Sviluppo


Versione in PDF
versione stampabile
  1. IntroduzioneJavaScript/Introduzione
  2. Il nostro primo programmaJavaScript/Il nostro primo programma
  3. Tipi di dati e variabiliJavaScript/Tipi di dati e variabili
  4. Operatori e castingJavaScript/Operatori e casting
  5. Le strutture di controllo
  6. Funzioni definite dall'utenteJavaScript/Funzioni definite dall'utente
  7. Programmazione ad oggettiJavaScript/Oggetti
  8. CookieJavaScript/Cookie
  9. TimerJavaScript/Timer
  10. L'oggetto windowJavaScript/BOM
  11. Il Document Object ModelJavaScript/DOM
  12. Espressioni regolariJavaScript/Espressioni regolari
  13. AJAX
  14. Costruttori e prototipiJavaScript/Costruttori e prototipi
  15. AppendiceJavaScript/Appendice
  16. CreditiJavaScript/Crediti

Modifica il sommario

chiudi indice


L'oggettoMath 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:

Math.nome_metodo();Math.nome_proprietà

Proprietà

[modifica |modifica sorgente]

Le proprietà dell'oggetto Math consistono in diverse costanti matematiche:

Ovviamente sono tutte proprietà di sola lettura

Metodi

[modifica |modifica sorgente]

Ecco una lista dei metodi corrispondenti alle principali funzioni matematiche e trigonometriche:

  • abs(): restituisce ilvalore assoluto (o modulo) del numero fornito come argomento
  • min() emax(): restituiscono il minimo e il massimo tra i due numeri passati come parametri
  • sqrt() epow(b,n): restituiscono la radice quadrata del numero passato o l'nesima potenza del numerob
  • sin(),cos() etan(): restituiscono ilseno, ilcoseno e latangente trigonometrica dell'angolo passato in radianti
  • log(): restituisce il logaritmo naturale in basee{\displaystyle e\;} del numero passato come parametro

Arrotondare i numeri

[modifica |modifica sorgente]

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:
Math.ceil(10.01)//restituisce 11Math.ceil(-6.3)//restituisce -6
  • floor(): arrotonda l'oggetto al numero intero minore più vicino (per difetto). Ad esempio:
Math.floor(10.01)//restituisce 10Math.floor(-6.3)//restituisce -7
  • round(): arrotonda l'oggetto per eccesso se la parte decimale è maggiore o uguale a 5, altrimenti arrotonda per difetto:
Math.round(10.01)//restituisce 10Math.round(-6.3)//restituisce -6Math.round(2.5)//restituisce 3

Tutte queste tre funzioni differiscono daparseInt() che non arrotonda i numeri, bensì li tronca. Ad esempio:

Math.parseInt(10.01)//restituisce 10Math.parseInt(-6.3)//restituisce -6Math.parseInt(2.5)//restituisce 2

Generare numeri casuali

[modifica |modifica sorgente]

L'uso di Math permette anche di generare numeri(pseudo) casuali tramite il metodo:

Math.random()

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:

varnumLanci=prompt("Quanti lanci vuoi effettuare?",10);vari;varlancio;for(i=0;i<numLanci;i++){lancio=Math.floor(Math.random()*6+1);alert("Lancio "+(i+1)+": "+lancio);}

La riga che ci interessa è quella dell'assegnazione della variabilelancio. Per capire l'algoritmo usato, ragioniamo sul risultato che vogliamo ottenere.
Il numero che vogliamo ottenere (che chiameremod) 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 chiameremon): in questo modo possiamo ottenere un numero che va da 0 (sen = 0, allorad = 0) fino a sei escluso. Infattid potrebbe essere uguale a 6 solo sen potesse essere uguale a 1, cosa che non è possibile
  • sommare uno al valore ottenuto: in questo modod sarà compreso tra 1 (incluso) e 7 (escluso)
  • arrotondare il valore per difetto: in questo modod 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

[modifica |modifica sorgente]

Di seguito viene mostrata un'applicazione pratica dei metodi dell'oggetto Math per la creazione di una funzione che arrotondi le cifre allanesima cifra decimale indicata.

functionarrotonda(num,dec,mod){vardiv=Math.pow(10,dec);switch(mod){case'e':case'E'://arrotonda per eccessoreturnMath.ceil(num*div)/div;break;case'd':case'D'://arrotonda per difettoreturnMath.floor(num*div)/div;break;case't':case'T'://troncamentoreturnparseInt(num*div)/div;break;case'a':case'A':default://arrotondareturnMath.round(num*div)/div;}}//per testarla usiamo queste righe di codice...alert(arrotonda(3.43,1,'t'));alert(arrotonda(3.42,1,'e'));alert(arrotonda(3.469,2,'d'));alert(arrotonda(3.427,2,'e'));alert(arrotonda(3.55,1,'a'));alert(arrotonda(3.46,1,'t'));

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 din 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 metodoMath.pow()

Estratto da "https://it.wikibooks.org/w/index.php?title=JavaScript/Oggetto_Math&oldid=373857"
Categorie:

[8]ページ先頭

©2009-2025 Movatter.jp