Maison >Problème commun >Quel type de données est float ?
float est un type de données à virgule flottante, utilisé pour stocker des nombres à virgule flottante simple précision ou des nombres à virgule flottante double précision. La valeur simple précision du type à virgule flottante a 4 octets, y compris. un bit de signe et un exposant binaire de 8 bits et une mantisse de 23 bits, qui n'est pas stockée sous forme de nombre puisque le bit de poids fort de la mantisse est toujours 1.
float est un type de données à virgule flottante.
Le type de données FLOAT est utilisé pour stocker des nombres à virgule flottante simple précision ou des nombres à virgule flottante double précision. Les nombres à virgule flottante utilisent le format IEEE (Institute of Electrical and Electronics Engineers). Les valeurs simple précision de type virgule flottante ont 4 octets, dont un bit de signe, un exposant binaire de 8 bits et une mantisse de 23 bits. Puisque le bit de poids fort de la mantisse est toujours 1, il n’est pas stocké sous forme de nombre. Cette représentation donne aux types flottants une plage d'environ -3,4E+38 ~ 3,4E+38.
Composition
Les nombres à virgule flottante sont exprimés sous forme exponentielle dans la machine et sont décomposés en quatre parties : signe numérique, mantisse, signe exposant , et l'exposant .
Le symbole numérique occupe 1 chiffre binaire et représente le nombre positif ou négatif.
Le signe de l'exposant occupe 1 chiffre binaire, indiquant le positif ou le négatif de l'exposant.
La mantisse représente le chiffre valide du nombre à virgule flottante, 0.xxxxxxx, mais le 0 et le point en tête ne sont pas stockés.
L'exposant stocke les chiffres significatifs de l'exposant.
Le nombre de chiffres occupés par l'exposant et le nombre de chiffres occupés par la mantisse sont déterminés par le système informatique.
Différence
Les variables peuvent être déclarées comme float ou double selon les besoins de l'application. Les principales différences entre ces deux types résident dans les bases sur lesquelles ils peuvent être représentés, le stockage qu'ils nécessitent et leur portée.
Plage de valeurs
Les variables à virgule flottante sont représentées par la mantisse (la valeur qui contient le nombre) et l'exposant (le grandeur qui contient le nombre) .
Le tableau suivant montre le nombre de bits alloués à la mantisse et à l'exposant de chaque type à virgule flottante. Le bit le plus significatif de tout float ou double est toujours le bit de signe. Si le bit de signe est 1, le nombre est traité comme négatif ; sinon, le nombre est traité comme positif.
Exposant et mantisse
Étant donné que l'exposant est stocké sans signe, l'exposant est biaisé de la moitié de sa valeur possible. Pour les types flottants, le biais est de 127 ; pour les types doubles, le biais est de 1 023. Vous pouvez calculer la valeur réelle de l'indice en soustrayant la valeur de biais de la valeur de l'indice.
Stocké sous forme de fraction binaire avec une mantisse supérieure ou égale à 1 et inférieure à 2. Pour les types float et double, il y a un 1 implicite en tête dans la mantisse à la position du bit le plus significatif, de sorte que les mantisses ont en réalité une longueur de 24 et 53 bits, respectivement, même si le bit le plus significatif n'est jamais stocké en mémoire.
Le package à virgule flottante peut stocker des nombres binaires à virgule flottante sous forme de nombres dénormalisés sans utiliser la méthode de stockage qui vient d'être introduite. Un « nombre dénormalisé » est un nombre à virgule flottante non nul avec un exposant préservé dans lequel le bit le plus significatif de la mantisse est 0. En utilisant un format non normalisé, la plage de nombres à virgule flottante peut être étendue, mais la précision est perdue. Vous n'avez aucun contrôle sur la représentation des nombres à virgule flottante sous une forme normalisée ou non ; le package à virgule flottante détermine la représentation. Le package à virgule flottante n'utilise jamais la forme dénormalisée à moins que l'exposant ne devienne plus petit que la plus petite valeur pouvant être représentée sous la forme normalisée.
Le tableau suivant montre les valeurs minimales et maximales pouvant être stockées dans les variables de chaque type à virgule flottante. Les valeurs répertoriées dans ce tableau s'appliquent uniquement aux nombres à virgule flottante normalisés ; la valeur minimale pour les nombres à virgule flottante non normalisés est plus petite. Notez que les nombres contenus dans les registres 80x87 sont toujours représentés sous forme normalisée 80 bits ; les nombres stockés dans des variables à virgule flottante 32 bits ou 64 bits (variables de type float et long) ne peuvent être représentés que sous forme dénormalisée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!