Vous êtes un professionnel et vous avez besoin d'une formation ?
Programmation Java Les compléments
Voir le programme détaillé
Module :
java.base - Package :
java.lang
Version documentée : Java SE 17
Classe « StrictMath »
Informations générales
Héritage java.lang.Object
java.lang.StrictMath
Définition public final class StrictMath extends java.lang.Object Description
Cette classe propose, sous forme de méthodes statiques, les fonctions mathématiques usuelles telles que les fonctions trigonométriques, exponentielles,
logarithmiques et autres.
les fonctions de la classe
Math utilisent des primitives à virgules flottantes proposées par le processeur de la machine sur laquelle
s'exécute le programme. Cela permet de garantir des performances accrues. Le contre-coup étant, qu'entre deux machines distinctes, les résultats calculés peuvent
être sensiblement différents : c'est notamment le cas pour les fonctions trigonométriques.
Si vous souhaitez obtenir des résultats plus strictes et totalement prévisibles, ce quelle que soit la plateforme considérée et quitte à être moins performant,
il faut plutôt utiliser la classe StrictMath. Cette dernière implémente les algorithmes provenant de la bibliothèque mathématique
Freely Distributable Math Library" (aussi appelée FdLibm) .
Exemple de code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
* La classe Vector représente un vecteur dans un espace à 3 dimensions.
*/
public class Vector {
private double x;
private double y;
private double z;
/**
* Méthode de normalisation du vecteur courant.
*/
public void normalize() {
// On calcule la norme du vecteur v1
double norm = StrictMath.sqrt( StrictMath.pow( this .x, 2 ) +
StrictMath.pow( this .y, 2 ) +
StrictMath.pow( this .z, 2 ) );
System.out.println( "norm == " + norm );
// On normalise le vecteur v1
this .x /= norm;
this .y /= norm;
this .z /= norm;
}
/**
* Méthode d'affichage du vecteur courant.
*/
@Override public String toString() {
return String.format( "[%f,%f,%f]" , this .x, this .y, this .z );
}
public static void main( String[] args ) {
// On génère un vecteur aléatoirement
Vector v1 = new Vector();
v1.x = ( StrictMath.random() * 10 ) - 5; // -5 <= x < 5
v1.y = ( StrictMath.random() * 10 ) - 5; // -5 <= y < 5
v1.z = ( StrictMath.random() * 10 ) - 5; // -5 <= z < 5
// On l'affiche
System.out.println( v1 );
// On le normalise
v1.normalize();
// On l'affiche une fois normalisé
System.out.println( v1 );
}
}
Exemple d'utilisation de la classe StrictMath
Et voici les résultats produits par cet exemple de code.
[-1,728644,-2,141001,-0,470752]
norm == 2.791720850312077
[-0,619204,-0,766911,-0,168624]>
Disponible depuis 1.3
Voir aussi La classe Math
Liste des attributs
Tous les attributs
Attributs d'instance
Attributs statiques
Attributs dépréciés
public static
double
E
public static
double
PI
Liste des constructeurs
Constructeurs
Constructeurs dépréciés
Liste des propriétés (getters/setters)
Propriétés
Propriétés dépréciées
Propriétés héritées de la classe java.lang.Object
class
Liste des méthodes
Toutes les méthodes
Méthodes d'instance
Méthodes statiques
Méthodes concrètes
Méthodes abstraites
Méthodes dépréciées
public static
int
abs( int a )
public static
double
abs( double a )
public static
long
abs( long a )
public static
float
abs( float a )
public static
int
absExact( int a )
public static
long
absExact( long a )
public static native
double
acos ( double value )
Cette méthode implémente la fonction trigonométrique de calcul de l'arc cosinus de la valeur passée en paramètre.
public static
int
addExact( int x, int y )
public static
long
addExact( long x, long y )
public static native
double
asin ( double value )
Cette méthode implémente la fonction trigonométrique de calcul l'arc sinus de la valeur passée en paramètre.
public static native
double
atan ( double value )
Cette méthode implémente la fonction trigonométrique de calcul de l'arc tangente d'une valeur.
public static native
double
atan2 ( double y, double x )
Cette méthode permet de calculer l'arc tangente de y/x (ou x et y représentent les coordonnées d'un point dans le plan).
public static
double
cbrt ( double value )
Cette méthode permet de calculer la racine cubique d'une valeur.
public static
double
ceil ( double value )
Cette méthode calcule l'arrondi entier supérieur (ceil signifiant plafond) de la valeur spécifiée en paramètre.
public static
float
copySign( float magnitude, float sign )
public static
double
copySign( double magnitude, double sign )
public static native
double
cos ( double angle )
Cette méthode implémente la fonction trigonométrique de calcul du cosinus d'un angle exprimé en radians.
public static native
double
cosh( double x )
public static
int
decrementExact( int a )
public static
long
decrementExact( long a )
public static
double
exp( double a )
public static native
double
expm1( double x )
public static
double
floor ( double value )
Cette méthode calcule l'arrondi entier inférieur (floor signifiant plancher) de la valeur spécifiée en paramètre.
public static
long
floorDiv( long x, long y )
public static
long
floorDiv( long x, int y )
public static
int
floorDiv( int x, int y )
public static
int
floorMod( long x, int y )
public static
long
floorMod( long x, long y )
public static
int
floorMod( int x, int y )
public static
double
fma( double a, double b, double c )
public static
float
fma( float a, float b, float c )
public static
int
getExponent( float f )
public static
int
getExponent( double d )
public static
double
hypot( double x, double y )
public static native
double
IEEEremainder( double f1, double f2 )
public static
int
incrementExact( int a )
public static
long
incrementExact( long a )
public static native
double
log( double a )
public static native
double
log10( double a )
public static native
double
log1p( double x )
public static
int
max( int a, int b )
public static
float
max( float a, float b )
public static
long
max( long a, long b )
public static
double
max( double a, double b )
public static
long
min( long a, long b )
public static
float
min( float a, float b )
public static
int
min( int a, int b )
public static
double
min( double a, double b )
public static
long
multiplyExact( long x, int y )
public static
long
multiplyExact( long x, long y )
public static
int
multiplyExact( int x, int y )
public static
long
multiplyFull( int x, int y )
public static
long
multiplyHigh( long x, long y )
public static
long
negateExact( long a )
public static
int
negateExact( int a )
public static
double
nextAfter( double start, double direction )
public static
float
nextAfter( float start, double direction )
public static
double
nextDown( double d )
public static
float
nextDown( float f )
public static
double
nextUp( double d )
public static
float
nextUp( float f )
public static
double
pow ( double value, double power )
Cette méthode permet de calculer une valeur élevée à une puissance donnée (valuepower ).
public static
double
random ()
Cette méthode renvoie une valeur pseudo-aléatoire, typée double, supérieure ou égale à 0 et strictement inférieure à 1.
public static
double
rint( double a )
public static
long
round ( double value )
Cette méthode renvoie l'arrondi entier au plus proche de la valeur spécifiée en paramètre.
public static
int
round( float a )
public static
float
scalb( float f, int scaleFactor )
public static
double
scalb( double d, int scaleFactor )
public static
double
signum( double d )
public static
float
signum( float f )
public static native
double
sin ( double angle )
Cette méthode implémente la fonction trigonométrique de calcul du sinus d'un angle exprimé en radians.
public static native
double
sinh( double x )
public static native
double
sqrt ( double value )
Cette méthode permet de calculer la racine carré d'une valeur passée en paramètre.
public static
int
subtractExact( int x, int y )
public static
long
subtractExact( long x, long y )
public static native
double
tan ( double angle )
Cette méthode implémente la fonction trigonométrique de calcul de la tangente d'un angle exprimé en radians.
public static native
double
tanh( double x )
public static
double
toDegrees( double angrad )
public static
int
toIntExact( long value )
public static
double
toRadians( double angdeg )
public static
double
ulp( double d )
public static
float
ulp( float f )
Méthodes héritées de la classe java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Vous êtes un professionnel et vous avez besoin d'une formation ?
Gérer la persistance des données avec Hibernate
Voir le programme détaillé
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :