Rechercher
 

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 :

Fonctions exp10, exp10f et exp10l

Entête à inclure

#include <math.h>  // <cmath> en C++

Fonctions exp10, exp10f et exp10l

double exp10( double x );                     // C2x
float exp10f( float x );                      // C2x
long double exp10l( long double x );          // C2x

Ces trois fonctions permettent de calculer une puissance de 10. La différence entre ces trois fonctions réside dans le type de données utilisé pour le paramètre et la valeur de retour (double, float ou long double).

ces trois fonctions intégreront le standard C ISO lors de sa prochaîne mise à jour (certainnement en 2021). A défaut de nom définitif ce prochain standard est actuellement appelé C2x. Vous pouvez activer un pré-support C2x dans gcc en rajoutant l'option -std=c2x. Notez aussi que ces trois fonctions sont déjà présentes dans certains compilateurs actuels.

Paramètre

Valeur de retour

Exemple de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main() {

    printf( "exp10(0) == %g\n", exp10(0) );
    printf( "exp10(1) == %g\n", exp10(1) );
    printf( "exp10(2) == %g\n", exp10(2) );
    printf( "exp10(3) == %g\n", exp10(3) );

    double res = exp10( 1000000 );
    if ( res == HUGE_VAL ) {
        printf( "exp10(1000000) - errno == ERANGE: %d\n", errno == ERANGE );
    }

    return EXIT_SUCCESS;
}
Exemple d'utilisation de la fonction exp10.

Il est à noter que la librairie mathématique doit être ajoutée durant l'étape de "link" (édition des liens) de votre exécutable. Cela se réalise en ajoutant l'option -lm à votre compilateur GCC. En cas d'utilisation d'un autre compilateur, je vous renvoie vers la documentation de ce dernier.

$>  gcc -o sample sample.c -lm -std=c2x
$>  ./sample
exp10(0) == 1
exp10(1) == 10
exp10(2) == 100
exp10(3) == 1000
exp10(1000000) - errno == ERANGE: 1
$> 

Sujets connexes

Les fonctions exp, expf et expl
Les fonctions exp2, exp2f et exp2l
Les fonctions exp2m1, exp2m1f et exp2m1l
Les fonctions exp10m1, exp10m1f et exp10m1l
Les fonctions pow, powf et powl