Cuando estamos programando, muchas veces surge la necesidad de recurrir a una función matemática, por suerte existe una clase de java que tiene muchas funciones matemáticas ya implementadas dentro de sus métodos. Estoy hablando de la clase Math, es una clase que tiene métodos estáticos, y una que otra constante que nos servirán para poder trabajar.
¿A qué me estoy refiriendo con métodos estáticos?
En su forma mas simple, es que para usarlos , no necesitamos de crear un objeto de esta clase, simplemente debemos si es que queremos usar un método de la clase Math, llamar a la clase , poner un punto y llamar al método deseado
Ejemplo
Math.random();
De esta manera obtenemos el resultado de la función que hayamos llamado.
Bien entonces empecemos por desarmar a la clase Math....
Primero que nada nombraré a dos contantes muy útiles que estan declaradas aquí una es la constante PI, y la otra en numero de euler E.
Los valores de estas dos constantes son los siguientes:
PI
|
3.141592653589793
|
E
|
2.718281828459045
|
para poder utilizarlas debemos llamar a la clase Math seguida de un punto y en mayúsculas el nombre de la constante. aquí podemos ver un ejemplo de como llamarlas.
System.out.println("La constante PI es igual a: "+ Math.PI); System.out.println("La constante E es igual a: "+ Math.E);
Con este ejemplo podremos imprimir los valores de estas dos contantes en la pantalla. como se muestra a continuación:
Constantes de la clase Math |
Vamos con la parte interesante, los MÉTODOS, existen gran variedad de metodos en esta clase , con distintas finalidades, los iremos nombrando, pero antes debemos tener en cuenta lo siguiente.
· Las funciones trigonométricas (seno,
coseno, tangente, etc) miden en radianes, no en grados, de modo que más de una
vez deberemos usar "toRadians" y "toDegrees" si nos resulta
más cómodo pensar en grados.
Por suerte esos dos métodos "toRadians()" y "toDegrees()" también pertenecen a esta clase y también podemos usarlos de igual manera. Una vez teniendo en claro lo anterior, podemos ir nombrando los métodos que nos interesan para trabajar con funciones matemáticas a través de la clase Math.
Empecemos por las funciones trigonométricas
En la clase Math podemos encontrar las siguientes :
- acos() Arco coseno
- asin() Arco seno
- atan() Arco tangente entre -PI/2 y PI/2
- cos(double) Coseno
- sin(double) Seno
- tan(double) Tangente
Si quisiéramos imprimir estas funciones con valores aleatorios haríamos lo siguiente:
System.out.println("Arcocoseno de 45º = " + Math.acos(Math.toRadians(45))); System.out.println("Arcoseno de 45º = " + Math.asin(Math.toRadians(45))); System.out.println("Arcotangente de 45º = " + Math.atan(Math.toRadians(45))); System.out.println("Coseno de 45º = " + Math.cos(Math.toRadians(45))); System.out.println("Seno de 45º = " + Math.sin(Math.toRadians(45))); System.out.println("Tangente de 45º = " + Math.tan(Math.toRadians(45)));
Es importante poner atención a como se saco por ejemplo el seno de 45 grados,
Observa que usamos primero la función Math.sin(); y como argumento le pasamos el 45 pero convertido a radianes con la función Math.toRadians(45); , esto por que como ya habíamos mencionado, las funciones trigonométricas de esta clase miden los valores en radianes.
La salida para el código anterior es la siguiente:
Resultados de usar las funciones trigonométricas de la clase Math |
Es hora de ver otros métodos interesantes de la clase Math, como lo son, los redondeos:
Estos son una parte importante de analizar, puesto que muchas veces tendremos que ver maneras de redondear de distintas maneras un numero. Para nuestra suerte la clase Math también tiene distintos métodos que permiten redondear de distintas maneras, veamos cuales son :
- ceil() Entero mayor más cercano
- floor() Entero menor más cercano
- rint(double) Entero más próximo
- round() Entero más cercano (redondeo de la forma habitual)
si quisiéramos probar estas funciones , imprimiendo las con valores random , seria como sigue
//Redondeo con el método ceil System.out.println("Redondear 1.9 al valor mayor entero mas cercano " + Math.ceil(1.9)); System.out.println("Redondear 1.2 al valor mayor entero mas cercano " + Math.ceil(1.2)); System.out.println("Redondear 1.5 al valor mayor entero mas cercano " + Math.ceil(1.5)); //Redondeo con el Método floor System.out.println("Redondear 1.9 al valor menor entero mas cercano " + Math.floor(1.9)); System.out.println("Redondear 1.2 al valor menor entero mas cercano " + Math.floor(1.2)); System.out.println("Redondear 1.5 al valor menor entero mas cercano " + Math.floor(1.5)); //Aproximación al entero más próximo con el método rint System.out.println("Entero mas proximo de 1.2 = " + Math.rint(1.2)); System.out.println("Entero mas proximo de 1.5 = " + Math.rint(1.5)); System.out.println("Entero mas proximo de 1.9 = " + Math.rint(1.9)); //Redondeo habitual con el metodo round System.out.println("Redondero habitual de 1.2 = " + Math.round(1.2)); System.out.println("Redondero habitual de 1.5 = " + Math.round(1.5)); System.out.println("Redondero habitual de 1.9 = " + Math.round(1.9));
El resultado de este código seria el siguiente:
Distintos Redondeos con métodos de la clase Math |
Aunque estos métodos de redondeo son muy buenos, no son los únicos ,puesto que Java tienes mas clases implementadas para ello, estas las abarcaremos en publicaciones posteriores.
Por ultimo veremos algunos otros métodos interesantes :
- abs() Valor absoluto
- exp() Exponencial
- log() Logaritmo natural (base e)
- max( , ) Máximo de dos valores
- min( , ) Mínimo de dos valores
- pow( , ) Primer número elevado al segundo
- random() Número aleatorio (al azar) entre 0.0 y 1.0
- sqrt() Raíz cuadrada
- toDegrees() Pasa de radianes a grados (a partir de Java 2)
- toRadians() Pasa de grados a radianes (a partir de Java 2)
System.out.println("Valor absoluto de 1 = " + Math.abs(1) + "\n Valor absoluto de -1 = " + Math.abs(-1)); System.out.println("Exponencial de un numero " + Math.exp(3)); System.out.println("Logaritmo natural base e" + Math.log(3)); System.out.println("Maximo de 6 y 7 " + Math.max(6, 7)); System.out.println("Minimo de 6 y 7 " + Math.min(6, 7)); System.out.println("5^2 = " + Math.pow(5, 2)); System.out.println("Número aleatorio " + Math.random()); System.out.println("Raiz cuadrada de 25 = " + Math.sqrt(25)); System.out.println("Raiz cuadrada de 213 =" + Math.sqrt(213)); System.out.println("45º convertidos a radianes = " + Math.toRadians(45)); System.out.println("180 radianes covertidos a grados = " + Math.toDegrees(180));
Entonces podemos concluir que la clase Math tienen bastantes buenos métodos que podemos implementar a la hora de querer usar alguna formula matemática, recordemos que si ya existe el método para que reinventar la rueda, sin nada mas que agregar, espero sus comentarios dudas, y hasta las próxima.
No hay comentarios.:
Publicar un comentario