Clase Math API Java
Clase Math API Java
Funciones matemáticas
(trigonométricas, log, etc.) Redondeo round, floor, ceil
FUNCIONES CLASE MATH JAVA
En cuanto a las funciones matemáticas en Java, las funciones disponibles vienen definidas en la clase Math.
Hay muchas funciones disponibles. Se puede consultar la lista completa en la documentación oficial del API de
Java (según versión de Java en uso, por ejemplo para la versión 8
ver http://docs.oracle.com/javase/8/docs/api/java/lang/Math.html ).
Las funciones round, ceil y floor se usan para obtener un entero próximo a un
número decimal y tienen similitudes, de hecho en algunos casos devuelven el
mismo resultado. Sin embargo también tienen diferencias que es interesante
conocer. Estas tres funciones se aplican sobre valores numéricos decimales y
retornan un valor numérico que en el caso de round es un entero long, mientras
que en el caso de floor y ceil retornan un valor de tipo double coincidente o
equivalente con un entero.
El método round redondea siempre al entero más próximo, por ejemplo 2.6
redondea a 3 mientras que -2.6 redondea a -3. Si el decimal está exactamente
entre dos valores se redondea al entero superior más próximo (por ejemplo 2.5
redondea a 3 y -2.5 redondea a -2).
El método floor diremos que devuelve el entero menor, por ejemplo 2.9
quedaría en 2.0 y -2.9 quedaría en -3.0. También 2.1 quedaría en 2.0 y -2.1
quedaría en -3.0.
El método ceil diremos que devuelve el entero mayor, por ejemplo 2.9 quedaría
en 3.0 y -2.9 quedaría en -2.0. También 2.1 quedaría a 3.0 y -2.1 quedaría en -
2.0.
addExact(int x, int y) Devuelve la suma de sus argumentos, lanzando una excepción si el resultado d
addExact(long x, long y) Devuelve la suma de sus argumentos, lanzando una excepción si el resultado s
long.
multiplyExact(int x, int y) Devuelve el producto de los argumentos, lanzando una excepción si el resultad
int.
multiplyExact(long x, long Devuelve el producto de los argumentos, lanzando una excepción si el resultad
y) long.
pow(double a, double b) Devuelve el valor del primer argumento elevado a la potencia del segundo argu
random() Devuelve un doublevalor con un signo positivo, mayor o igual que 0.0 y meno
0
1 package clasemath;
2
3 import java.text.DecimalFormat;
4 /**
5 *
6 * @author codesitio.com
7 */
8 public class ClaseMath {
9
10 public static String metodoForm ( String patron, double dato) {
11 DecimalFormat objDF = new DecimalFormat (patron);
12 String result = objDF.format (dato);
13 return result;
14 }
15
16 public static void main(String[] args) {
17 double num1 = -10.570;
18 double num2 = 4.10;
19 int num3 = 10;
20 int num4 = 38;
21 double dato;
22
23 System.out.printf ("El valor absoluto de %.3f es %.2f %n", num1, Math.abs(num1));
24
25 System.out.printf ("El máximo de %d y %d es %d %n", num3, num4, Math.max (num3, num4));
26
27 System.out.printf ("El mínimo de %d y %d es %d %n", num3, num4, Math.min (num3, num4));
28
29 System.out.printf ("El valor de e es %.4f %n", Math.E);
30
31 System.out.printf ("exp (%d) es %.3f %n",num3, Math.exp (num3));
32
33 System.out.printf ("log (%d) es %.3f %n", num4, Math.log (num4));
34
35 System.out.printf ("%.2f elevado a %d es %f %n", num2, num3, dato = Math.pow (num2, num3));
36
37 System.out.printf("Que con formato es: %n " +metodoForm("###,###.##",dato )+"%n");
38
39 System.out.printf ("La raiz cuadrada de (%.2f) es %.2f %n", num2, Math.sqrt (num2));
40 }
41 }
42
En consola tendriamos los siguientes resultados:
Método random() de la clase Math.
El método random podemos utilizarlo para generar números al azar. El rango o margen
con el que trabaja el método random oscila entre 0.0 y 1.0 (Este último no incluido).
Por lo tanto, para generar un número entero entre 0 y 9, Hay que escribir la siguiente
sentencia:
0
1 int numero = (int) (Math.random () * 10);
2
De esta manera al multiplicar el valor por 10, el rango de valores posibles se convierte en:
0
1 0.0 <= numero < 10.0
2
Para finalizar Podeis ver un ejemplo de programa java que utiliza el método random de
la clase Math en esta página.
La clase Math
Clases y objetos
Funciones miembro
Funciones miembro
La clase Math define muchas funciones y versiones distintas de cada función.
Por ejemplo, para hallar el valor absoluto de un número define las siguientes
funciones. Se llama a una u otra dependiendo del tipo de dato que se le pasa en su
único argumento.
public final class Math {
public static int abs(int a) {
return (a < 0) ? -a : a;
}
public static long abs(long a) {
return (a < 0) ? -a : a;
}
public static float abs(float a) {
return (a < 0) ? -a : a;
}
public static double abs(double a) {
return (a < 0) ? -a : a;
}
//...
}
Funciones trigonométricas
Se obtiene 72.35 y 0.35 como cabría esperar. Fijarse que round devuelve un
número entero int que es necesario promocionar a double para efectuar la
división entre 100.
Números aleatorios
La clase Math define una función denominada random que devuelve un número
pseudoaleatorio comprendido en el intervalo [0.0, 1.0). Existe otra alternativa, se
pueden generar números pseudoaleatorios a partir de un objeto de
la clase Random, que llame a la función miembro nextDouble.
System.out.println("Número aleatorio: " + Math.random());
System.out.println("Otro número aleatorio: " + Math.random());
Cálculo del número irracional
Para hallar la longitud de una circunferencia de radio R, primero se calcula el
perímetro de un triángulo equilátero (3 lados) inscrito en dicha circunferencia,
luego, de un hexágono (6 lados), un dodecágono (12 lados), y así sucesivamente.
El límite de la sucesión de perímetros es precisamente la longitud de la
circunferencia 2 R.
Si tomamos una circunferencia de radio unidad, al dividir entre dos los valores de
los perímetros iremos obteniendo las sucesivas aproximaciones del número
irracional .