Java Float et double comparaison
Le flotteur et les types doubles sont deux formats différents pour représenter des nombres réels en java. Ils sont tous deux appelés les types de points flottants. Un nombre réel en mathématiques est un nombre entier et une partie décimale. Par exemple, 23.75 est un nombre réel. La partie du nombre entier est de 23 et la partie décimale est de 75. Si la partie décimale est «.0 ”, le nombre réel est de 23.0, alors le nombre réel est un entier. Les entiers sont un sous-ensemble de nombres réels. Une gamme de nombres réels du plus petit à la plus grande valeur aurait des entiers. Par exemple, la gamme de nombres réels de -3.5 à +3.5 a les entiers, -3, -2, -1, 0, +1, +2 et +3, à l'intérieur. N'oubliez pas que la partie décimale d'un nombre réel est une fraction appropriée. Par exemple .75 est 3/4.
Comme vu de la plage ci-dessus, qui est de -3.5 à +3.5, un nombre peut être positif ou négatif. Un nombre sans le signe est appelé le numéro absolu. Le nombre absolu de -2.5 est 2.5. Le nombre absolu de +2.5 est 2.5. Le nombre absolu est le nombre positif.
Le nombre, 23.75 peut être représenté par un flotteur ou un double. Alors, comment se fait la différence? La réponse à cela peut être appréciée en essayant de répondre à la question: combien de nombres y a-t-il entre 2 et 3, inclus (y compris 2 et 3)? En fait, le nombre de nombres entre 2 et 3 est infini. Ainsi, les nombres flottants ou doubles sont un ensemble de nombres dans une plage, car les nombres infinis ne peuvent pas être déterminés. Pour la même plage, il y a plus de nombres doubles, avec des intervalles plus courts entre chaque paire de nombres consécutifs.
Cet article compare les flotteurs et les doubles en Java, en commençant par un type correspondant imaginaire appelé flot et doub.
Types correspondants imaginaires
Développer nos propres types correspondants imaginaires appelés Flot et Doub, correspondant à Float et double.
Flotter
Avec le type à flot, ayons trois nombres entre 2 et 3. Laissez les chiffres, 2.25, 2.5, et 2.75. Ainsi, les seuls nombres de flotter entre 2 et 3 inclusifs, sont 2, 2.25, 2.5, 2.75 et 3. Comme on peut le voir dans cette gamme, le plus petit numéro absolu de l'ensemble du flot est 0.25, qui est également la différence entre deux nombres consécutifs. (Pour avoir les chiffres de 3 à 4, continuez à ajouter 0.25).
Doublé
Avec le type Doub, avons sept nombres entre 2 et 3. Laissez les chiffres, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875. Ainsi, les seuls nombres Doub entre 2 et 3 inclusifs sont 2, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875 et 3. Comme on peut le voir dans cette gamme, le plus petit numéro absolu de l'ensemble du Doub est 0.125, qui est également la différence entre deux nombres consécutifs. (Pour avoir les chiffres de 3 à 4, continuez à ajouter 0.125). Ce nombre est inférieur à 0.25 pour flotter.
Marge d'erreur
Notez que les nombres consécutifs pour Doub sont plus petits dans l'intervalle que les nombres consécutifs pour le flot.
Le nombre exact de nombres dans une plage de vots ou de doubs ne peut pas être déterminé, car tous les nombres dans la plage sont infinis. Il y a donc une marge d'erreur pour n'importe quel nombre donné, y compris des entiers, tels que 2 ou 3, pour l'un de ces types.
Pour les déchets, pour n'importe quel nombre donné, le nombre est précis à l'intérieur, + ou - 1/4 (i.e. 0.25). Donc, un nombre de flots de 2.5, se situe en fait entre 2.375 et 2.675. Un nombre de flots de 3, se situe en fait entre 2.875 et 3.125. Le nombre réel (précision) ne peut jamais être déterminé. Même un entier d'un type à flotteur est un nombre qui n'est pas très certain.
Pour Doubs, pour n'importe quel nombre donné, le nombre est précis à l'intérieur de + ou -1/8 (0.125). Donc, un numéro Doub de 2.5, se situe en fait entre 2.4375 et 2.5625. Un nombre de 3 de 3, se situe en fait entre 2.9375 et 3.0625. Le nombre réel (précision) ne peut jamais être déterminé. Même un entier d'un type Doub est un nombre qui n'est pas très certain. Remarquez qu'un numéro Doub a plus de précision qu'un numéro de flot.
Les types de flotteurs et de doubles en Java sont similaires à ces types de flots et de doub imaginaires. Leurs intervalles sont en conséquence plus petits.
Comparaison du flotteur et double propre en Java
Le flotteur est connu comme un type de précision unique. Double est connu comme un type de double précision. Un numéro de flotteur occupe 32 bits (quatre octets). Un double nombre occupe 64 bits (huit octets). Les deux nombres représentent des nombres réels en Java, le double type ayant moins d'intervalles entre les nombres consécutifs. Les deux types ne peuvent jamais donner un numéro exact. Cependant, le double a moins de tolérance que le flotteur. Les deux types sont en fait basés sur des formats de l'IEEE 754.
La plage du double type de son extrémité négative à son extrémité positive, est plus large que la plage du type de flotteur, de son extrémité négative à sa fin positive.
Flotter
Le plus petit nombre positif normalisé du type de flotteur est 2-126. Le plus grand nombre positif pour le flotteur est (2 - 2-23) × 2127. L'ensemble des nombres flottants peut être imaginaire comme ajoutant 2-126 à plusieurs reprises de l'extrémité négative à sa fin positive.
Une valeur de nombre flottant doit se terminer par «F», comme le montre le programme suivant:
classe publique TheClassLa sortie est:
23.75
Double
Le plus petit nombre positif normalisé de type double est de 2-1022, plus petit que celui du flotteur. Le plus grand nombre positif pour le double est (2 - 2-52) × 21023. L'ensemble de nombres doubles peut être imaginaire comme ajoutant 2-1022 à plusieurs reprises de l'extrémité négative, à sa fin positive.
Une valeur de double nombre ne se termine pas par «f» ou «d» ou «r», comme le montre le programme suivant:
classe publique TheClassLa sortie est:
23.75
mais avec moins de marge de tolérance, qu'avec le flotteur ci-dessus.
Le flotteur et le double sont des types primitifs. Et donc, aucune classe ne doit être importée dans le programme par le programmeur pour qu'ils soient utilisés.
Nan
Nan représente pas un nombre. Considérez le programme suivant:
classe publique TheClassLe programme se compile sans aucun problème, mais émet le message d'erreur suivant, lors de l'exécution:
Exception dans le fil «Main» Java.égouter.Arithmeticexception: / par zéro
à la classe.Main (Theclass.Java: 3)
L'opération non valide est ici, zéro divisé par zéro. Le résultat est NAN, bien qu'un message d'erreur ait été émis. Ceci est applicable à la fois à flotter et à doubler. D'autres opérations non valides, entraînent NAN.
Conclusion
Le flotteur est connu comme un type de précision unique. Double est connu comme un type de double précision. Un numéro de flotteur occupe 32 bits (quatre octets). Un double nombre occupe 64 bits (huit octets). Les deux types représentent des nombres réels en Java, le double type ayant moins d'intervalles entre les nombres consécutifs, et est plus précis.
Chrys