Was haben diese drei spezielle floating-point-Werte bedeuten: positive Unendlichkeit, negative Unendlichkeit, NaN?
Wie können wir Sie nutzen in unserer codes, und was wird die Ursache NaN(not a number)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese kann eine gute Referenz, wenn Sie möchten, erfahren Sie mehr über floating-point-zahlen in Java.
Positive Unendlichkeit ist eine positive Zahl, so groß, daß Sie nicht vertreten werden normalerweise. Negative Unendlichkeit ist eine negative Zahl, so groß, dass es nicht dargestellt werden kann in der Regel. NaN bedeutet "not a Number" und resultiert aus einer mathematischen operation, die nicht Ertrag einer Reihe - wie die Division 0 durch 0.
In Java, die Doppel-und Float-Klassen haben beide Konstanten sind, um alle drei Fälle. Sie sind POSITIVE_INFINITY, NEGATIVE_INFINITY und NaN.
Plus Bedenken Sie:
Mathematisch, jeder kann sehen, es ist 0. Aber für die Maschine, es ist ein "Infinity" - "Infinity" (von gleichem Wert), das ist in der Tat NaN.
float
unddouble
nicht nur gegen die Feld-Axiome--Sie sind auch nicht äquivalenz-Klassen. Das ist von Interesse für viele Menschen mehr als nur die Mathematiker, denn es zwingt die Verwendung von hässlich kludges zu machen, die Sammlungen zu arbeiten.float
,double
etc. verletzen Bereich Axiome, nämlich die Assoziativität. In jedem Fall, Sie sind nicht gedacht, um grundlegende Bausteine für Mathematiker, die arbeiten wollen, mit dem wahren reellen zahlen — für die, die es werden computer-algebra-Systemen kann die Arbeit mit exakten zahlen.0/0
.Und die Konstanten aus der Spezifikation der
Float
Klasse:Float.NEGATIVE_INFINITY
Float.POSITIVE_INFINITY
Float.NaN
Mehr Informationen finden Sie in der IEEE-754-Seite in der Wikipedia.
Hier ein kleines Programm zur Veranschaulichung der drei Konstanten:
Ausgabe:
Infinity (in java) bedeutet, dass das Ergebnis einer operation wird so sein, eine sehr große positive oder negative Zahl, dass es nicht dargestellt werden kann in der Regel.
Die Idee zu vertreten, um spezielle Nummern, die entstehen kann, natürlich von Operationen, die auf "normalen" zahlen. Sie konnte sehen, infinity (positive und negative) als "überlauf" von der floating-point-Darstellung, wobei die Idee, dass es zumindest einige Bedingungen, solch einen Wert von einer Funktion zurückgegeben wird gibt noch sinnvolles Ergebnis. Sie haben noch einige bestellen Eigenschaften, zum Beispiel (damit Sie nicht Schrauben-Sortier-Operationen, zum Beispiel).
Nan ist sehr besonders: wenn x Nan, x == x false ist (das ist eigentlich ein Weg, um zu testen, nan, zumindest in C, wieder). Dies kann verwirrend sein, wenn Sie nicht verwendet wird, um Gleitkomma-Besonderheiten. Es sei denn, Sie tun scientific computation, würde ich sagen, dass Nan zurückgegeben durch eine operation ist ein Fehler, zumindest in den meisten Fällen in den Sinn kommen. Nan kommen können für verschiedene Operationen: 0/0, inf - inf, inf/inf, 0 * inf. Nan hat keine Bestellung von Eigentum, entweder.
Können Sie Sie wie jede andere Anzahl:
e.g:
dies ist keine vollständige Antwort(oder nicht klar genug) - Bedenken Sie:
mathematisch jeder es sehen kann, ist 0. aber für die Maschine ist es ein "Infinity" - "Infinity"(gleiche Reihenfolge) die Hexe ist in der Tat NaN...