Java Float und Doppelvergleich

Java Float und Doppelvergleich

Java Float und Doppelvergleich

Der Schwimmer und die Doppeltypen sind zwei verschiedene Formate zur Darstellung realer Zahlen in Java. Sie werden beide als schwimmende Punkttypen bezeichnet. Eine reelle Zahl in Mathematik ist eine ganze Zahl und ein Dezimalteil. Zum Beispiel 23.75 ist eine reelle Zahl. Der gesamte Zahlenteil beträgt 23 und der Dezimalteil ist 75. Wenn der Dezimalteil ist “.0 ”, die reale Nummer ist 23.0, dann ist die reale Zahl eine Ganzzahl. Ganzzahlen sind ein Teil realer Zahlen. Eine Reihe realer Zahlen vom kleinsten bis zum größten Wert hätte Ganzzahlen innerhalb. Zum Beispiel der Bereich der reellen Zahlen von -3.5 bis +3.5 hat die Ganzzahlen, -3, -2, -1, 0, +1, +2 und +3, innerhalb. Vergessen Sie nicht, dass der Dezimalenteil einer realen Zahl ein richtiger Bruch ist. Zum Beispiel .75 ist 3/4.

Wie aus dem obigen Bereich hervorgeht, der von -3 stammt.5 bis +3.5, eine Zahl kann positiv oder negativ sein. Eine Zahl ohne Zeichen wird als absolute Zahl bezeichnet. Die absolute Anzahl von -2.5 ist 2.5. Die absolute Anzahl von +2.5 ist 2.5. Die absolute Zahl ist die positive Zahl.

Die Zahl, 23.75 kann durch einen Schwimmer oder ein Doppel dargestellt werden. Wie kommt der Unterschied zustande?? Die Antwort darauf kann geschätzt werden, indem versucht wird, die Frage zu beantworten: Wie viele Zahlen gibt es zwischen 2 und 3, einschließlich 2 und 3)? Tatsächlich ist die Anzahl der Zahlen zwischen 2 und 3 unendlich. Float oder Doppelzahlen sind also eine Reihe von Zahlen in einem Bereich, da unendliche Zahlen nicht bestimmt werden können. Für denselben Bereich gibt es mehr doppelte Zahlen, wobei zwischen jedem aufeinanderfolgenden Zahlenpaar kürzere Intervalle.

Dieser Artikel vergleicht Floats und Doppel in Java, beginnend mit einem imaginären entsprechenden Typ, der als Flot und Doub bezeichnet wird.

Imaginäre entsprechende Typen

Lassen Sie uns unsere eigenen imaginären entsprechenden Typen entwickeln, die als Flot und Doub bezeichnet werden, die dem Float und Double entsprechen.

Flot

Lassen Sie uns mit dem Flottyp drei Zahlen zwischen 2 und 3 haben. Lassen Sie uns die Zahlen haben, 2.25, 2.5 und 2.75. Die einzigen Flottenzahlen zwischen 2 und 3 sind also 2, 2, 2, 2.25, 2.5, 2.75 und 3. Wie aus diesem Bereich hervorgeht, beträgt die kleinste absolute Zahl im gesamten Flot -Set 0.25, was auch der Unterschied zwischen zwei aufeinanderfolgenden Zahlen ist. (Um die Zahlen von 3 bis 4 zu haben, fügen Sie einfach weiter 0 hinzu.25).

Doub

Lassen Sie uns mit dem Doub -Typ sieben Zahlen zwischen 2 und 3 haben. Lassen Sie uns die Zahlen haben, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875. Die einzigen zweizahlen zwischen 2 und 3 sind also 2, 2, 2, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875 und 3. Wie aus diesem Bereich hervorgeht, beträgt die kleinste absolute Zahl im gesamten Doub -Set 0.125, was auch der Unterschied zwischen zwei aufeinanderfolgenden Zahlen ist. (Um die Zahlen von 3 bis 4 zu haben, fügen Sie einfach weiter 0 hinzu.125). Diese Zahl ist kleiner als 0.25 für Flot.

Fehlermarge

Beachten Sie, dass aufeinanderfolgende Zahlen für Doub in Intervall kleiner sind als aufeinanderfolgende Zahlen für Flot.

Die genaue Anzahl von Zahlen innerhalb eines Bereichs von Flots oder Tobs kann nicht bestimmt werden, da alle Zahlen im Bereich unendlich sind. Es gibt also eine Fehlerquote für eine beliebige Zahl, einschließlich der Zahlen, wie z. B. 2 oder 3, für einen dieser Typen.

Für Flots ist die Zahl für eine beliebige Zahl genau auf innerhalb, + oder - 1/4 (i.e. 0.25). Also eine Flot -Anzahl von 2.5, liegt tatsächlich irgendwo zwischen 2.375 und 2.675. Eine Flot -Anzahl von 3 liegt tatsächlich irgendwo zwischen 2.875 und 3.125. Die tatsächliche Zahl (Präzision) kann niemals bestimmt werden. Selbst eine ganze Zahl eines Flottyps ist eine Zahl, die nicht sehr sicher ist.

Für die zeitnahmeberechtigten Zahl ist die Zahl für innerhalb von + oder -1/8 (0) genau.125). Also eine zweifache Anzahl von 2.5, liegt tatsächlich irgendwo zwischen 2.4375 und 2.5625. Eine zweifache Anzahl von 3 liegt tatsächlich irgendwo zwischen 2.9375 und 3.0625. Die tatsächliche Zahl (Präzision) kann niemals bestimmt werden. Sogar eine ganze Zahl eines Zweifentyps ist eine Zahl, die nicht sehr sicher ist. Beachten Sie, dass eine Doppelnummer mehr Präzision als eine Flot -Nummer hat.

Der Float und die Doppeltypen in Java ähneln entsprechend diesen imaginären Flot- und Zweifentypen. Ihre Intervalle sind entsprechend kleiner.

Vergleich von Float und doppelt geeignet in Java

Float ist als einzelner Präzisionstyp bekannt. Double ist als Doppelpräzisionstyp bekannt. Eine Float -Nummer nimmt 32 Bit (vier Bytes) ein. Eine Doppelzahl nimmt 64 Bit (acht Bytes) ein. Beide Zahlen repräsentieren reelle Zahlen in Java, wobei der Doppelart weniger Intervalle zwischen aufeinanderfolgenden Zahlen aufweist. Beide Typen können niemals eine genaue Zahl angeben. Das Doppel hat jedoch weniger Toleranz als der Schwimmer. Beide Typen basieren tatsächlich auf Formaten von IEEE 754.

Der Bereich des Doppeltyps von seinem negativen Ende bis zum positiven Ende ist breiter als der Bereich des Float -Typs, von seinem negativen Ende bis zum positiven Ende.

Schweben

Die kleinste normalisierte positive Anzahl des Schwimmertyps beträgt 2-126. Die größte positive Zahl für den Schwimmer ist (2 - 2-23) × 2127. Der Satz von Float-Zahlen kann sich vorstellen, wenn Sie wiederholt 2-126 vom negativen Ende bis zum positiven Ende hinzufügen.

Ein Float -Zahlenwert sollte mit 'F' enden, wie das folgende Programm zeigt:

öffentliche Klasse Theclass
public static void main (String [] args)
float flt = 23.75f;
System.aus.println (flt);

Die Ausgabe ist:

23.75

Doppelt

Die kleinste normalisierte positive Anzahl des Doppeltyps beträgt 2-1022, kleiner als die des Floats. Die größte positive Zahl für das Doppel ist (2 - 2-52) × 21023. Die Anzahl der Doppelzahlen kann sich vorstellen, wenn Sie wiederholt 2-1022 vom negativen Ende zu seinem positiven Ende hinzufügen.

Ein doppelter Zahlenwert endet nicht mit 'f' oder 'd' oder 'r', wie das folgende Programm zeigt:

öffentliche Klasse Theclass
public static void main (String [] args)
double dbl = 23.75;
System.aus.println (dbl);

Die Ausgabe ist:

23.75

aber mit weniger Toleranzrand als mit dem Schwimmer darüber.

Float und Double sind primitive Typen. Und so muss vom Programmierer keine Klasse in das Programm importiert werden, damit sie verwendet werden sollen.

Nan

Nan steht für Not-a-Number. Betrachten Sie das folgende Programm:

öffentliche Klasse Theclass
public static void main (String [] args)
System.aus.println (0/0);

Das Programm erstellt ohne Probleme, gibt jedoch beim Ausführen die folgende Fehlermeldung aus:

Ausnahme im Thread "Haupt" Java.Lang.Arithmeticexception: / bis Null
In der Klasse.Haupt (TheClass.Java: 3)

Der ungültige Vorgang hier ist nulldividuelles von durch Null. Das Ergebnis ist NAN, obwohl eine Fehlermeldung ausgegeben wurde. Dies gilt sowohl für Float als auch für Doppel. Andere ungültige Operationen führen zu NAN.

Abschluss

Float ist als einzelner Präzisionstyp bekannt. Double ist als Doppelpräzisionstyp bekannt. Eine Float -Nummer nimmt 32 Bit (vier Bytes) ein. Eine Doppelzahl nimmt 64 Bit (acht Bytes) ein. Beide Typen stellen reelle Zahlen in Java dar, wobei der Doppeltyp weniger Intervalle zwischen aufeinanderfolgenden Zahlen hat und präziser ist.

Chrys