Travailler Avec des Nombres à Virgule Flottante
Les nombres ne se terminent pas avec des entiers. Il existe également des nombres à virgule flottante. En C++, nous utilisons les types de données float
et double
pour les stocker. Ce chapitre couvrira le type de données float
, tandis que le suivant traitera du type de données double
et de ses distinctions. Voici la syntaxe pour l'utilisation de float
:
float.h
1float num = 0.45;
Jetons un coup d'œil rapide à la façon dont les nombres à virgule flottante sont stockés en mémoire.
Le type de données float
occupe 4 octets de mémoire, tout comme un int
. Cependant, convertir ces nombres en code binaire est beaucoup plus complexe :
Voici un exemple de la façon dont float num = 13.45
serait stocké :
Il est normal de ne pas comprendre entièrement ce qui se passe ici. L'important à noter est que la représentation d'un float
est divisée en 3 parties :
-
le composant signe est représenté par un symbole plus (
+
) ou moins (-
). Il indique si un nombre est positif ou négatif ; -
le composant exposant détermine l'étendue qu'un nombre peut représenter. Plus l'exposant est grand, plus l'étendue des valeurs représentables est large. Pour le type de données
float
, l'exposant occupe 1 octet (8 bits) de mémoire ; -
le composant mantisse détermine la précision d'un
float
. Tous les nombres ne peuvent pas être représentés exactement en mémoire, et la précision d'un nombre est définie par la longueur de la mantisse. Pour le type de donnéesfloat
, la longueur de la mantisse est de 23 bits.
En conséquence, float
a une précision de 7 chiffres décimaux et une plage de 1.2e-38 à 3.4e+38 (s'applique aux nombres négatifs et positifs). Donc, la plupart du temps, la plage n'est pas un problème. Mais la précision l'est parfois.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain more about the difference between float and double?
Why is the precision of float limited to 7 decimal digits?
Can you give an example where float's precision might cause problems?
Awesome!
Completion rate improved to 4.35
Travailler Avec des Nombres à Virgule Flottante
Glissez pour afficher le menu
Les nombres ne se terminent pas avec des entiers. Il existe également des nombres à virgule flottante. En C++, nous utilisons les types de données float
et double
pour les stocker. Ce chapitre couvrira le type de données float
, tandis que le suivant traitera du type de données double
et de ses distinctions. Voici la syntaxe pour l'utilisation de float
:
float.h
1float num = 0.45;
Jetons un coup d'œil rapide à la façon dont les nombres à virgule flottante sont stockés en mémoire.
Le type de données float
occupe 4 octets de mémoire, tout comme un int
. Cependant, convertir ces nombres en code binaire est beaucoup plus complexe :
Voici un exemple de la façon dont float num = 13.45
serait stocké :
Il est normal de ne pas comprendre entièrement ce qui se passe ici. L'important à noter est que la représentation d'un float
est divisée en 3 parties :
-
le composant signe est représenté par un symbole plus (
+
) ou moins (-
). Il indique si un nombre est positif ou négatif ; -
le composant exposant détermine l'étendue qu'un nombre peut représenter. Plus l'exposant est grand, plus l'étendue des valeurs représentables est large. Pour le type de données
float
, l'exposant occupe 1 octet (8 bits) de mémoire ; -
le composant mantisse détermine la précision d'un
float
. Tous les nombres ne peuvent pas être représentés exactement en mémoire, et la précision d'un nombre est définie par la longueur de la mantisse. Pour le type de donnéesfloat
, la longueur de la mantisse est de 23 bits.
En conséquence, float
a une précision de 7 chiffres décimaux et une plage de 1.2e-38 à 3.4e+38 (s'applique aux nombres négatifs et positifs). Donc, la plupart du temps, la plage n'est pas un problème. Mais la précision l'est parfois.
Merci pour vos commentaires !