2016-10-04 4 views
-2

J'ai vu des exemples des termes « float » et « double » être appliqué à différents scénarios et semblent comprendre que les bits et octets servent un rôle, mais je ne peux pas trouver un clair explication de ce la différence est. Les contraintes de mémoire semblent être la cause d'une telle différenciation (??), mais je veux juste juste savoir spécifiquement ce que l'on est par rapport à l'autre. De plus, comment dire si les données sont classées (ou devrait être stocké) comme "float" contre "double"?Quelle est exactement la différence entre les types de stockage en virgule flottante 'float' et 'double'?

Comment ces concepts s'appliquent aux valeurs décimales (vs binaires)?


Contexte: J'ai une série de variables stockées dans une table .csv pour laquelle je suis en train de définir « le type de stockage. » Certains sont des entiers, d'autres sont des chaînes et d'autres encore sont des nombres décimaux. J'essaie juste de comprendre comment définir le "type de stockage" pour chacun.

+3

Possible duplication de [Différence entre float et double] (http://stackoverflow.com/questions/2386772/difference-between-float-and-double) –

+0

Pour ceux qui sont si prompts à faire une rétrogradation, veuillez me faire savoir est faux avec la question, ou passer un peu de temps supplémentaire pour aider ceux (moi) à comprendre quelque chose que vous jugez simple. – theforestecologist

+0

Ce n'est pas mon vote négatif, mais il est fort probable que vous ayez été déclassé en raison de l'absence apparente d'efforts de recherche antérieurs et du fait qu'il existe déjà de nombreux doublons de cette question sur StackOverflow. Quoi qu'il en soit, voir le lien ci-dessus - qui couvre à peu près tout dans votre question (et plus encore). –

Répondre

2

virgule flottante est un moyen de représenter des nombres qui est utilisé dans les ordinateurs, et est expliqué ailleurs, par exemple here et here. Double utilise juste plus de bits que le flotteur, donc le double a plus de précision et de portée.

Dans un fichier CSV, les numéros sont stockés sous forme de texte, par exemple en utilisant les cinq caractères "27.37". Le virgule flottante est un moyen de représenter les nombres utilisés en interne par les ordinateurs, de sorte que les numéros que vous avez dans votre fichier CSV ne sont pas du tout des nombres à virgule flottante. Ils ne sont ni flotteurs ni doubles.

Lorsque ces nombres doivent être traités par un ordinateur, le format de texte est (généralement) converti en un format interne, généralement un format flottant et double. Vous ne pouvez pas décider lequel en regardant la version texte du nombre, car il est en soi ni l'un ni l'autre. Vous devez décider en fonction de la précision et de la vitesse dont vous avez besoin. Dans la plupart des cas, je recommande d'utiliser le double, car les doubles ont une plus grande précision, et sont très rapides sur les ordinateurs modernes typiques. Vous pouvez économiser de l'espace, et parfois gagner de la vitesse, en utilisant float, mais cela n'est nécessaire que dans des cas exceptionnels. Mais, pour me contredire: Dans certains cas, peut regarder un nombre écrit en texte, et déterminer s'il peut être stocké comme un flottant ou un double. Par exemple, si vous trouvez le nombre "0,333333333333333314829616256247390992939472198486328125" écrit comme ça, ce n'est pas un flotteur ou un double en soi, mais ce nombre particulier, avec toutes ces décimales, peut être stocké comme un double mais pas comme un flotteur. S'il est stocké sous la forme d'un flottant, avec moins de bits, il sera converti en "0.3333333432674407958984375".