Cette peut être une bonne référence si vous souhaitez en savoir plus sur les nombres à virgule flottante en Java.
Positive de l'Infini est un nombre positif si grand qu'il ne peut pas être représenté normalement. L'Infini négatif est un nombre négatif si grand qu'il ne peut pas être représenté normalement. NaN signifie "Pas un Nombre", et les résultats d'une opération mathématique qui ne donne pas un nombre comme en divisant 0 par 0.
En Java, le Double et Float classes, les deux ont des constantes pour représenter les trois cas. Ils sont POSITIVE_INFINITY, NEGATIVE_INFINITY, et NaN.
Plus considérez ceci:
double a =Math.pow(10,600)-Math.pow(10,600);//==NaN
Mathématiquement, tout le monde peut le voir, il est de 0. Mais pour la machine, c'est un "Infini" - "l'Infini" (de même Rang), qui est en fait NaN.
Pour info, le lien est périmé. J'ai essayé de réparer le lien brisé, mais il a été rejeté. Ici c'est vraiment une bonne ressource qui comprend également une QA section avec des liens pour poursuivre l'exploration. Je suis en désaccord avec la caractérisation (ici et ailleurs) que l'infini positif est un "nombre si grand qu'il ne peut pas être représenté normalement". Il peut être un nombre si grand qu'il ne peut pas être représenté comme un float normal, mais dans la pratique, il est habituellement dérive de quelque chose comme 5f/0f, ce qui n'est pas un grand (Real) nombre; c'est un naïf version de l'infini. (Techniquement, +inf, -inf et NaN sont des extensions du corps des Réels qui offrent de fermeture sur toute opération arithmétique, mais au prix de la violation de base d'un champ axiomes. Cela n'a pas beaucoup d'importance pour les scientifiques de l'informatique, il n'en faut pour les mathématiciens). Le fait que NaN a malheureusement été définis non seulement en tant que non-classé, mais aussi comme inégal à lui-même, signifie que float et double pas seulement à l'encontre de terrain axiomes--ils ne sont même pas des classes d'équivalence. C'est de l'intérêt pour beaucoup plus de personnes que juste les mathématiciens, car il impose l'utilisation de laide kludges de faire des collections de travail. en fait, même sans ±inf/NaN float, double etc. violer champ axiomes, à savoir, l'associativité. En tout cas, ils ne sont pas censés être des blocs de construction de base pour les mathématiciens qui veulent travailler avec de vrais Réels — pour ceux qui il y a des systèmes de calcul formel qui peut fonctionner avec des chiffres exacts.
L'infini positif signifie aller à l'infini dans la direction positive -- aller dans des valeurs qui sont de plus en plus grande ampleur dans le sens positif.
L'infini négatif signifie aller à l'infini dans la direction négative -- aller dans des valeurs qui sont de plus en plus grande ampleur dans le sens négatif.
Not-a-number (NaN) est quelque chose qui n'est pas défini, comme le résultat de 0/0.
Et les constantes à partir de la spécification de la Float classe:
0/0 entraînera Nan. Vous pouvez utiliser NaN comme n'importe quel autre numéro, par exemple: NaN+NaN=NaN, NaN+2.0=NaN
-1/0 résultat dans l'infini négatif.
L'infini (en java) signifie que le résultat d'une opération sera un très grand nombre positif ou négatif qu'il ne peut pas être représenté normalement.
L'idée est de représenter les numéros spéciaux qui peuvent survenir naturellement provenant de l'exploitation "normaux", des numéros. Vous avez pu voir à l'infini (à la fois positifs et négatifs) de "débordement" de la représentation à virgule flottante, l'idée étant que, au moins dans certaines conditions, avoir une valeur retournée par une fonction donne encore de résultat significatif. Ils ont encore la commande propriétés, par exemple (pour ne pas vis des opérations de tri, par exemple).
Nan est très particulière: si x est Nan, x == x est faux (qui est en fait un moyen de tester nan, au moins en C, à nouveau). Cela peut être très déroutant si vous n'êtes pas habitué à virgule flottante particularités. À moins que vous ne calcul scientifique, je dirais que le fait d'avoir Nan renvoyées par une opération est un bug, au moins dans la plupart des cas qui viennent à l'esprit. Nan pouvez venir pour diverses opérations: 0/0, inf - inf, inf/inf, 0 * inf. Nan n'a pas de commande de propriété, soit.
Positive de l'Infini est un nombre positif si grande qu'il ne peut pas être
représenté normalement. L'Infini négatif est un nombre négatif si grand
qu'il ne peut pas être représenté normalement. NaN signifie "Pas un Nombre" et
les résultats d'une opération mathématique qui ne donne pas un nombre-
comme divisant 0 par 0.
ce n'est pas une réponse complète(ou pas suffisamment clarifié) - pensez à ceci:
double a =Math.pow(10,600)-Math.pow(10,600);//==NaN
mathématiquement tout le monde peut le voir, il est de 0. mais pour la machine, il est un "Infini" - "l'Infini"(de même ordre) qui est en fait NaN...
Si citant une réponse, il est généralement préférable de laisser un commentaire ou de suggérer une modification. Les réponses devraient être en mesure de rester seul. ok je ne savais pas que je pouvais modifier d'autres posts... comme un git 🙂
Cette peut être une bonne référence si vous souhaitez en savoir plus sur les nombres à virgule flottante en Java.
Positive de l'Infini est un nombre positif si grand qu'il ne peut pas être représenté normalement. L'Infini négatif est un nombre négatif si grand qu'il ne peut pas être représenté normalement. NaN signifie "Pas un Nombre", et les résultats d'une opération mathématique qui ne donne pas un nombre comme en divisant 0 par 0.
En Java, le Double et Float classes, les deux ont des constantes pour représenter les trois cas. Ils sont POSITIVE_INFINITY, NEGATIVE_INFINITY, et NaN.
Plus considérez ceci:
Mathématiquement, tout le monde peut le voir, il est de 0. Mais pour la machine, c'est un "Infini" - "l'Infini" (de même Rang), qui est en fait NaN.
J'ai essayé de réparer le lien brisé, mais il a été rejeté. Ici c'est vraiment une bonne ressource qui comprend également une QA section avec des liens pour poursuivre l'exploration.
Je suis en désaccord avec la caractérisation (ici et ailleurs) que l'infini positif est un "nombre si grand qu'il ne peut pas être représenté normalement". Il peut être un nombre si grand qu'il ne peut pas être représenté comme un float normal, mais dans la pratique, il est habituellement dérive de quelque chose comme 5f/0f, ce qui n'est pas un grand (Real) nombre; c'est un naïf version de l'infini. (Techniquement, +inf, -inf et NaN sont des extensions du corps des Réels qui offrent de fermeture sur toute opération arithmétique, mais au prix de la violation de base d'un champ axiomes. Cela n'a pas beaucoup d'importance pour les scientifiques de l'informatique, il n'en faut pour les mathématiciens).
Le fait que NaN a malheureusement été définis non seulement en tant que non-classé, mais aussi comme inégal à lui-même, signifie que
float
etdouble
pas seulement à l'encontre de terrain axiomes--ils ne sont même pas des classes d'équivalence. C'est de l'intérêt pour beaucoup plus de personnes que juste les mathématiciens, car il impose l'utilisation de laide kludges de faire des collections de travail.en fait, même sans ±inf/NaN
float
,double
etc. violer champ axiomes, à savoir, l'associativité. En tout cas, ils ne sont pas censés être des blocs de construction de base pour les mathématiciens qui veulent travailler avec de vrais Réels — pour ceux qui il y a des systèmes de calcul formel qui peut fonctionner avec des chiffres exacts.OriginalL'auteur Cameron
0/0
.Et les constantes à partir de la spécification de la
Float
classe:Float.NEGATIVE_INFINITY
Float.POSITIVE_INFINITY
Float.NaN
Plus d'informations peuvent être trouvées dans le La norme IEEE-754 page dans Wikipedia.
Voici un petit programme pour illustrer les trois constantes:
De sortie:
Oui, vous avez raison-c'était mon erreur, et il a été résolu.
OriginalL'auteur coobird
L'infini (en java) signifie que le résultat d'une opération sera un très grand nombre positif ou négatif qu'il ne peut pas être représenté normalement.
OriginalL'auteur kadam
L'idée est de représenter les numéros spéciaux qui peuvent survenir naturellement provenant de l'exploitation "normaux", des numéros. Vous avez pu voir à l'infini (à la fois positifs et négatifs) de "débordement" de la représentation à virgule flottante, l'idée étant que, au moins dans certaines conditions, avoir une valeur retournée par une fonction donne encore de résultat significatif. Ils ont encore la commande propriétés, par exemple (pour ne pas vis des opérations de tri, par exemple).
Nan est très particulière: si x est Nan, x == x est faux (qui est en fait un moyen de tester nan, au moins en C, à nouveau). Cela peut être très déroutant si vous n'êtes pas habitué à virgule flottante particularités. À moins que vous ne calcul scientifique, je dirais que le fait d'avoir Nan renvoyées par une opération est un bug, au moins dans la plupart des cas qui viennent à l'esprit. Nan pouvez venir pour diverses opérations: 0/0, inf - inf, inf/inf, 0 * inf. Nan n'a pas de commande de propriété, soit.
OriginalL'auteur David Cournapeau
Vous pouvez les utiliser comme n'importe quel autre numéro:
e.g:
OriginalL'auteur Freddy
ce n'est pas une réponse complète(ou pas suffisamment clarifié) - pensez à ceci:
mathématiquement tout le monde peut le voir, il est de 0. mais pour la machine, il est un "Infini" - "l'Infini"(de même ordre) qui est en fait NaN...
ok je ne savais pas que je pouvais modifier d'autres posts... comme un git 🙂
OriginalL'auteur Alex