Médiaforma

Java – Une classe dédiée à la manipulation des nombres : Math

Print Friendly

Nous allons maintenant nous intéresser à une classe qui contient de nombreuses méthodes très intéressantes au niveau du calcul entier et réel : la classe Math. Les constantes, variables et méthodes de cette classe sont immédiatement accessibles sans qu’il soit nécessaire d’utiliser une instruction import, car la déclaration suivante est implicite :

import java.lang.*;

Les variables

E représente une approximation de la base des logarithmes népériens : 2.7182818284590452354f.

PI représente une approximation du nombre irrationnel PI : 3.14159265358979323846f.

Les méthodes

IEEEremainder()

La méthode IEEEremainder() retourne le reste de la division du premier argument par le second selon la norme IEEE 754 :

public static double IEEEremainder(double f1, double f2)

Exemple :

public class Test {
  public static void main (String args[]) throws java.io.IOException {
    double r1, r2;
    char ch;
    String Interm;
    System.out.println("Entrez le dividende : ");
    Interm = Lit();
    r1=Double.valueOf(Interm).doubleValue();
    System.out.println("Entrez le diviseur : ");
    Interm = Lit();
    r2=Double.valueOf(Interm).doubleValue();
    System.out.println("Selon la norme IEE 754,");
    System.out.println("le reste de la division de " + r1 + " par " + r2 + " est " + Math.IEEEremainder(r1, r2));
  }
public static String Lit() throws java.io.IOException {
    String S = "";
    char C;
    while ((C=(char)System.in.read()) != '\r') {
      S = S + C;
    }
    C=(char)System.in.read();
    return S;
  }
}

Le premier bloc d’instructions lit le dividende et le diviseur et stocke ces deux valeurs dans les variables r1 et r2.

System.out.println("Entrez le dividende : ");
...
r2=Double.valueOf(Interm).doubleValue();

Le deuxième bloc d’instructions utilise la méthode IEEEremainder() pour calculer et afficher le reste de la division du premier nombre par le second, selon la norme IEE 754 :

System.out.println("Selon la norme IEE 754,");
System.out.println("le reste de la division de " + r1 + " par " + r2 + " est " + Math.IEEEremainder(r1, r2));

abs()

La méthode abs() renvoie la valeur absolue de la valeur int, long, float ou double qui lui est passée. Le type de la valeur retournée est le même que celui de la valeur passée :

public static int abs(int a)
public static long abs(long a)
public static float abs(float a)
public static double abs(double a)

acos()

La méthode acos() retourne sous la forme d’un double l’arc cosinus (en radians) de la mesure d’angle qui lui est passée :

public static double acos(double a)

asin()

La méthode asin() retourne sous la forme d’un double l’arc sinus (en radians) de la mesure d’angle qui lui est passée :

public static double asin(double a)

atan()

La méthode atan() retourne sous la forme d’un double l’arc tangente (en radians) de la mesure d’angle qui lui est passée :

public static double atan(double a)

atan2()

La méthode atan2() renvoie la composante théta (r, théta) des coordonnées rectangulaires qui lui sont passées :

public static double atan2(double a, double b)

ceil()

Cette fonction retourne sous la forme d’un double l’entier supérieur ou égal à la valeur spécifiée :

public static double ceil(double a)

cos()

La méthode cos() renvoie sous la forme d’un double le cosinus de l’angle (en radians) passé en argument :

public static double cos(double a)

exp()

La méthode exp() renvoie sous la forme d’un double l’exponentielle de son argument :

public static double exp(double a)

floor()

La méthode floor() renvoie sous la forme d’un double l’entier inférieur ou égal à la valeur spécifiée :

public static double floor(double a)

log()

La méthode log() renvoie sous la forme d’un double le logarithme népérien du nombre passé en argument.

public static double log(double a) throws ArithmeticException

max()

La méthode max() renvoie le plus grand de ses deux arguments :

public static int max(int a, int b)
public static long max(long a, long b)
public static float max(float a, float b)
public static double max(double a, double b)

min()

La méthode min() renvoie le plus petit de ses deux arguments :

public static int min(int a, int b)
public static long min(long a, long b)
public static float min(float a, float b)
public static double min(double a, double b)

pow()

La méthode pow() retourne sous la forme d’un double la mise à la puissance du premier argument par le second :

public static double pow(double a, double b) throws ArithmeticException

random()

La méthode random() retourne un double pseudo-aléatoire compris entre 0.0 et 1.0 :

public static synchronized double random()

Exemple :

public class Test {
  public static void main (String args[]) throws java.io.IOException {
    int i;
    for (i=0; i<10; i++) {
      System.out.println(Math.random());
    }
  }
}

Ce programme consiste en une boucle for exécutée dix fois qui appelle la méthode random() et affiche le résultat.

Remarque

La classe java.util.Random donne accès à un générateur de nombres pseudo-aléatoires qui est une variante intéressante de la méthode Math.random(). Dans la classe Random, plusieurs méthodes peuvent être utilisées pour générer des nombres aléatoires :

public double nextDouble();
public float nextFloat();
public synchronized double nextGaussian();
public int nextInt();
public long nextLong();

Le nom des méthodes est très parlant : nextDouble() renvoie un double, nextFloat() un float, nextInt() un int et nextLong() un long. Quant à la méthode nextGaussian(), elle renvoie des valeurs « double » qui suivent une distribution gaussienne centrée sur la valeur 0 et d’amplitude 1 (c’est-à-dire entre -1 et 1).

rint()

La méthode rint() renvoie sous la forme d’un double la valeur arrondie de son argument double :

public static double rint(double a)

round()

La méthode round() renvoie sous la forme d’un int/d’un long la valeur arrondie de son argument float/double. Le calcul est effectué en ajoutant la valeur 0.5 à l’argument et en prenant la valeur entière inférieure ou égale au nombre obtenu :

public static int round(float a)
public static long round(double a)

sin()

La méthode sin() renvoie sous la forme d’un double le sinus de l’angle (en radians) passé en argument :

public static double cos(double a)

sqrt()

La méthode sqrt() renvoie sous la forme d’un double la racine carrée de son argument :

public static double sqrt(double a) throws ArithmeticException

tan()

La méthode tan() renvoie sous la forme d’un double la tangente de l’angle en radians qui est passé en argument :

public static double tan(double a);

Après avoir pris connaissance des classes dédiées aux types composites et à la manipulation des nombres, vous en savez suffisamment pour extraire par vos propres moyens les informations dont vous avez besoin des autres classes du JDK. Pour vous aider, consultez la documentation en ligne à l’adresse http://docs.oracle.com/javase/8/docs/api/.

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply