Salta el contingut

L'objecte Math

Permet realitzar operacions matemàtiques.
Conté una sèrie de constants matemàtiques (PI, E, etc.) que actuen com a propietats, així com diferents mètodes relacionats amb operacions matemàtiques.

Tingueu en compte que...

L'objecte Math no té constructor.
És estàtic, per tant les seves propietats i mètodes es poden utilitzar directament sense crear-ne primer una instància.

Math (MDN)
JavaScript Math Object (W3Schools)
JavaScript Math Reference (W3Schools)

Constants matemàtiques

Les seguents constants tenen un valor precalculat dins de l'objecte Math:

constant definició valor aproximat
Math.E e 2.718
Math.LN2 logaritme neperià de 2 0.693
Math.LN10 logaritme neperià de 10 2.302
Math.LOG2E logaritme en base 2 de e 1.442
Math.LOG10E logaritme decimal de e 0.434
Math.PI π 3.14159
Math.SQRT1_2 arrel quadrada de ½ 0.707
Math.SQRT2 arrel quadrada de 2 1.414

Valor absolut

El mètode Math.abs(x) retorna el valor absolut de x.

let a = Math.abs( 42 );   // Resultat = 42
let b = Math.abs( -42 );  // Resultat = 42
let c = Math.abs( -4.2 ); // Resultat = 4.2

Funcions trigonomètriques

mètode definició mètodes relacionats
Math.sin() sinus sinh(), asin(), asinh()
Math.cos() cosinus cosh(), acos(), acosh()
Math.tan() tangent tanh(), atan(), atan2(), atanh()

Tingueu en compte que...

Les funcions trigonomètriques en JavaScript operen en radians i no en graus.
Per treballar en graus cal fer-ne la conversió amb la fòrmula:

angle en radians = angle en graus x PI / 180

Potència i arrel quadrada

El mètode Math.pow(x,y) retorna el valor de xy (x elevat a y).

let a = Math.pow( 2, 8 );   // Resultat = 256 (2⁸)

El mètode Math.sqrt(x) retorna l'arrel quadrada de x.

let a = Math.sqrt( 81 );   // Resultat = 9
let b = Math.sqrt( 42 );   // Resultat = 6.48074069840786

Nota

pow és l'abreviatura en anglès de POWer (potència)
sqrt és l'abreviatura en anglès de SQuare RooT (arrel quadrada)

Logaritmes

let a = Math.log( x );    // Logaritme natural
let b = Math.log2( x );   // Logaritme en base 2
let c = Math.log10( x );  // Logaritme decimal (en base 10)

Màxim i mínim

Els mètodes Math.max() i Math.min() ens retornen el valor més alt o més baix de la llista de números que els hi passem com a arguments:

let maxim = Math.max( 5, 12, -3, 0, 45, 2.3, -9, 45.1 ); // --> 45.1
let minim = Math.min( 5, 12, -3, 0, 45, 2.3, -9, 45.1 ); // --> -9

Arrodoniments

mètode definició
Math.round(x) arrodoniment a l'enter més proper
Math.ceil(x) arrodoniment a l'enter més proper cap amunt (ceiling)
Math.floor(x) arrodoniment a l'enter més proper cap avall
Math.trunc(x) retorna la part entera de x

Exemples

round() ceil() floor() trunc()
4.2 4 5 4 4
4.5 5 5 4 4
4.7 5 5 4 4
-4.2 -4 -4 -5 -4
-4.5 -4 -4 -5 -4
-4.7 -5 -4 -5 -4

Valors aleatoris

El mètode Math.random() retorna un valor numèric aleatori entre 0 i 1 (no inclòs).

Com que en JavaScript tots els nombres són valors en coma flotant de 64 bits, sempre obtindrem un valor amb decimals, positiu i més petit que 1.

Exemples:

Per obtenir valors més grans, hem de multiplicar el resultat pel valor màxim+1 que volem obtenir:

// Obtenir un valor entre 0 i 100
Math.random() * 101;

Si el que volem són nombres enters, els hem d'arrodonir, per exemple amb Math.floor():

// Obtenir un valor enter entre 0 i 100
Math.floor( Math.random() * ( 100 + 1 ) );

Per obtenir un valor aleatori entre dos números (min i max, tots dos inclosos), podem fer-ho així:

Math.random() * ( max - min + 1 ) + min;