#include <math.h> // <cmath> en C++
double ufromfpx( double x, int rnd, unsigned int width ); // C23
float ufromfpxf( float x, int rnd, unsigned int width ); // C23
long double ufromfpxl( long double x, int rnd, unsigned int width ); // C23
Ces trois fonctions se comportent comme ufromfp, mais elles lèvent l'exception flottante d'inexactitude si l'arrondi modifie la valeur.
Ces éléments ont été ajoutés par la version C23 du standard du langage C.
Ces fonctions renvoient la valeur entière non signée arrondie, représentée dans le type flottant de départ.
L'exemple suivant montre une utilisation simple de ces fonctions.
1 2 3 4 5 6 7 8 |
#include <math.h> #include <stdio.h> #include <stdlib.h> int main() { printf( "ufromfpx(3.2, FP_INT_TOWARDZERO, 32) == %g\n", ufromfpx(3.2, FP_INT_TOWARDZERO, 32) ); return EXIT_SUCCESS; } |
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 $> ./sample ufromfpx(3.2, FP_INT_TOWARDZERO, 32) == 3 $>
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 :