Métodos del objeto Math
Javascript tiene un objeto llamado «Math» que nos permite realizar numerosas operaciones y funciones matemáticas a través de los métodos que tiene definidos. De una manera coloquial, podríamos decir que tenemos incorporada en Javascript una calculadora científica para utilizar cuando queramos en nuestro código.
Estas operaciones incluyen el cálculo de:
- funciones trigonométricas: seno, coseno, tangente,…
- máximo y mínimos de un conjunto de números
- logaritmos, raices y potencias
- redondeo y generación de un número aleatorio
Para utilizar estas funciones, debemos escribir:
Math.metodo()
siendo Math el nombre de este objeto, seguido por un punto y el nombre del método que vamos a aplicar.
Mostramos un ejemplos con los métodos: sqrt(), cos(), pow(), max(), random(), round() (y las variantes de éste último: ceil() y floor()) explicando en el mismo script qué realiza cada uno:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<script> var num1 = Math.sqrt(25); //cálculo de la raiz cuadrada de un número x: sqrt(x) var num2 = Math.cos(30); //cálculo del coseno de una angulo x: cos(x) var num3 = Math.pow(5,2); //cálculo de un número x elevado a y: pow(x,y) var num4 = Math.max(150, 30, -200); //cálculo del máximo de un conjunto de números: max(x,y,z,....) var num5 = Math.random(); //generación de un número aleatorio entre 0 y 1 var num6 = Math.round(num5); //redondeo del valor de 'num5' a entero más cercano var num7 = Math.ceil(num5); //redondeo del valor de 'num5' al entero superior var num8 = Math.floor(num5); //redondeo del valor de 'num5' al entero inferior document.write("Resultado al aplicar varios métodos del objeto Math : " + "<br><br>"); document.write("Raiz cuadrada de 25 = " + num1 + "<br>" + "Coseno de 30 = " + num2 + "<br>" + "5 al cuadrado = " + num3 + "<br>" + "Máximo de 150, 30 y -200: " + num4 + "<br>" + "Nº aleatorio entre 0 y 1: " + num5 + "<br>"); document.write("Redondeo del nº aleatorio anterior: " + num6 + "<br>" + "Redondeo del mismo nº al entero superior: " + num7 + "<br>" + "Redondeo del nº al entero anterior: " + num8 + "<br>"); </script> |
Números aleatorios: hay muchos programas que necesitan generar un número al azar, por ejemplo si estamos simulando un sorteo, desarrollando un juego donde el usuario tiene que adivinar algo, si queremos presentar elementos sin un orden establecido,….
Para ello tenemos el método Math.random() en JavaScript, que en versiones parecidas está presente en casi todos los lenguaje de programación. Como hemos visto en el ejemplo, este método nos da un número decimal entre 0 y 1, así que para generar números aleatorios enteros (0, 1, 2, 3…) necesitamos multiplicar ese resultado por un número entero, y luego quedarnos con un redondeo, aplicando alguno de los métodos del objeto Math que hemos visto en ese ejemplo: round(), floor() ó ceil().
Para entenderlo mejor, vamos a multiplicar por ejemplo por una potencia de 10 (10, 100, 1000,…) y probarlo directamente:
- Copia primero el ejemplo de script anterior al editor online y pulsa repetidamente el botón ‘Ver resultado‘, para ver como cambia el nº aleatorio y sus redondeos.
- Después, modifica el ejemplo cambiando la instrucción var num5 = Math.random(); por la instrucción var num5 = Math.random() * 10;
- Vuelve a pulsar repetidamente el botón ‘Ver resultado‘. Verás como en los redondeos hechos con los métodos ‘floor()‘ y ‘ceil()‘ te van generando números entre 0 y 9 ó 1 y 10, respectivamente. El método ‘round’ te genera entre 0 – 10, pero si lo piensas, el ‘0’ y el ’10’ tienen menos probabilidades de salir que los números del 1 al 9.
- Prueba a multiplicar por otras potencias: Math.random() * 100, Math.random * 1000,… y comprueba nuevamente los resultados. Verás que los rangos serán entre 0-99 / 1-100, 0-999 / 1-1000, etc…
Constantes
El objeto Math también nos proporciona algunas constantes matemáticas muy importantes. Son propiedades de dicho objeto y podemos acceder a su valor con la notación que ya conocemos: Math.propiedad. Por ejemplo:
Math.E : nos da el número e (2,718…) Math.PI : nos da el número π (3,14…)Saber más: en esta página puedes encontrar el conjunto completo de propiedades y métodos del objeto Math.