FABS |
Virgule flottante absolue |
---|---|
Langage C++ | cmath (math.h) |
Syntaxe
float fabs(float n); |
double fabs(double n); |
long double fabs(long double n); |
Paramètres
Nom | Description |
---|---|
n | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Description
Cette fonction calcul la valeur absolue d'un nombre réel.
Algorithme
MODULE FABS(valeur) SI valeur < 0 ALORS RETOURNE - valeur SINON RETOURNE valeur FIN SI |
Remarques
- Définition et utilité : La fonction fabs en C++ calcule la valeur absolue d'un nombre à virgule flottante, c'est-à-dire qu'elle renvoie le nombre sans son signe. Elle est définie dans la bibliothèque <cmath>. Contrairement à la fonction abs étant destinée aux entiers, fabs est spécifiquement utilisée pour les types de données flottants comme float, double ou long double.
- Comportement avec les nombres négatifs : Lorsque le paramètre passé à fabs est négatif, la fonction renvoie sa valeur absolue, c'est-à-dire qu'elle supprime le signe négatif. Par exemple, fabs(-5.3) renverra 5.3. Pour les nombres déjà positifs ou égaux à zéro, la fonction renverra la même valeur sans modification.
- Comportement avec NaN et infini : La fonction fabs gère aussi des cas particuliers comme NaN (Not a Number) et l'infini (Inf). Si le paramètre est NaN, la fonction renvoie également NaN. Si le paramètre est l'infini (+Inf ou -Inf), fabs renverra +Inf, indépendamment du signe initial de l'infini. Cela permet de traiter des valeurs infinies ou indéfinies de manière cohérente.
- Utilité en traitement numérique : La fonction fabs est très utilisée dans les domaines des calculs numériques et de la simulation, où il est souvent nécessaire de travailler avec des valeurs absolues pour des calculs d'erreur, d'optimisation, ou dans des algorithmes nécessitant la comparaison de magnitudes, comme les méthodes de recherche de racines ou les gradients dans l'optimisation.
- Précision numérique : Comme avec toutes les fonctions manipulant des nombres à virgule flottante, il est important de considérer les limitations de précision lors de l'utilisation de fabs. En particulier, pour des valeurs extrêmement petites ou grandes, les résultats peuvent être affectés par la précision des nombres flottants dans les représentations en mémoire. Toutefois, fabs fonctionne avec la même précision que les autres opérations sur les nombres à virgule flottante.
- Différence avec abs : La principale différence entre fabs et abs réside dans les types de données qu'elles acceptent. abs est utilisé pour les entiers (int, long), tandis que fabs est destiné aux nombres à virgule flottante (float, double, long double). Par ailleurs, abs pour les entiers retourne un type de données int, alors que fabs retourne un type à virgule flottante.
Exemples
Voici un exemple montrant une utilisation plus classique de la valeur absolue :

on obtiendra le résultat suivant :
Abs(1)=1Abs(-1)=1
Abs(30.2)=30.2
Abs(-35.4)=35.4
Dans cet exemple, fabs calcule et affiche la valeur absolue de -7.25, qui est 7.25. Cela peut être utile dans des calculs où seule la magnitude des valeurs est importante, indépendamment de leur signe :
Voir également
Langage de programmation - C++ - Référence procédures et fonctions - ceil
Langage de programmation - C++ - Référence procédures et fonctions - floor
Langage de programmation - C - Référence procédures et fonctions - fabs
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 91.