La représentation des nombres réels qui sont, du point de vue de l'informatique, des nombres à virgule flottante, est bien sur également possible en C, et c'est pourquoi je vais maintenant vous en parler.
Le type réel standard en virgule flottante à simple précision est désigné par l'identificateur float
. Le type double
correspond au format des réels a virgule flottante en double précision.
Les réels sont stockés sous la forme classique (mantisse/exposant) mais, comme pour les entiers, les représentations internes des types peuvent légèrement varier selon l'environnement et la machine. Quelque soit la façon dont le compilateur traite ces objets, il met à la disposition du programmeur trois niveaux de précision correspondant aux trois types :
Type | Taille minimale | Etendue | Description |
float | 4 octet | 3.4e-38 à 3.4e+38 | Réels a virgule flottante simple précision |
double | 8 octets | 1.7e-308 à 1.7e+308 | Réels a virgule flottante double précision |
long double | 10 octets | 3.4e-4932 à 1.1e+4932 | Réels a virgule flottante quadruple précision |
Les valeurs réelles peuvent s'écrire indifféremment sous forme décimale ou en notation scientifique.
La forme décimale utilise le point comme séparateur décimal, avec au moins un chiffre avant ou après le point, et éventuellement un signe + ou -, le + étant facultatif. Par exemple : 1.23
ou -.36
La forme scientifique d'un numérique se compose d'une mantisse pouvant apparaître sous forme entière ou décimale, et d'un exposant entier. Par exemple : 1e3
ou -0.1e-1
Le seul opérateur non applicable sur un réel est l'opérateur %
. Les autres (+, -, *, /) sont toujours utilisables. Pour que la valeur retournee par une expression soit reele, il suffit que l'un de ses operandes soit reel.
Les operateurs permettent d'effectuer des calculs de base, mais pour realiser des calculs plus complexes, comme une racine carrée ou un sinus, il faut recourir aux fonctions de la librairie math.h. Voici la plus grande partie de ces fonctions :
Fonction | Syntaxe | Description |
abs | int abs(int x); | Retourne la valeur absolue d'un entier. |
labs | long labs(long x) | Retourne la valeur absolue d'un entier long. |
fabs | double fabs(double x) | Retourne la valeur absolue d'un réel. |
ceil | double ceil(double x) | Arrondi par exces (retourne le plus petit entier supérieu ou egal à x). |
floor | double floor(double x) | Arrondi par defaut (retourne le plus petit entier inférieur ou egal à x). |
sin | double sin(double x) | Sinus d'uns valeur en radian (intervalle -1 à 1). |
cos | double cos(double x) | Cosinus d'uns valeur en radian (intervalle -1 à 1). |
tan | double tan(double x) | Tangente d'uns valeur en radian. |
exp | double exp(double x) | Calcule e^x. |
log | double log(double x) | Logarithme népérien de x. |
log10 | double log10(double x) | Logarithme decimal de .x |
fmod | double fmod(double x, double y) | Modulo (reste de la division de x par y). |
pow | double pow(double x, double y) | Puissance (x^y). |
sqrt | double sqrt(double x) | Racine carrée de x. |
Dernière révision :
Date de Création : 18 mars 1998
Copyright © Mathieu ARNOLD 1998