Wie kann ein primitiver Gleitkommawert -0.0 sein? Was bedeutet das?
Kommen, wie eine primitive float-Wert -0.0? Was bedeutet das?
Kann ich stornieren, die Funktion?
Wenn ich:
float fl;
Dann fl == -0.0
zurück true
und so funktioniert fl == 0
. Aber wenn ich es ausdrucken, er druckt -0.0
.
InformationsquelleAutor der Frage ScalaNooB | 2011-07-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Java verwendet die IEEE Standard for Floating-Point-Arithmetik (IEEE 754) definiert
-0.0
und wenn es verwendet werden soll.Können Sie rund um Ihr spezifisches problem durch hinzufügen
0.0
z.B.
Finden Sie unter: Java Floating-Point-Zahl Feinheiten
-
InformationsquelleAutor der Antwort OldCurmudgeon
floating-point-zahlen im Speicher gespeichert werden, mithilfe der IEEE-754 standard was bedeutet, dass es könnte ein Rundungsfehler. Sie konnte nie in der Lage, zum speichern einer Gleitkommazahl mit der unendlichen Präzision mit endlichen Ressourcen.
Sollten Sie nie zu testen, ob eine gleitpunktzahl == zu einigen anderen, D. H. nie code schreiben:
wo
a
undb
sind Schwimmer. Aufgrund von Rundungsfehlern jene beiden zahlen, die gespeichert werden können, verschiedene Werte im Speicher.Sollten Sie definieren, a Präzision mit der Sie arbeiten möchten:
und testen Sie dann gegen die Präzision, die Sie brauchen
So, in Ihrem Fall, wenn Sie testen möchten, eine floating-point-Zahl gleich null in der vorgegebenen Präzision:
Und wenn Sie möchten, formatieren Sie die Nummern bei der Ausgabe diese in der GUI können Sie einen Blick auf die folgende Artikel und die NumberFormat Klasse.
InformationsquelleAutor der Antwort Darin Dimitrov
Den floating-point-Datentyp in Java ist beschrieben in der JLS: 4.2.3 Gleitkomma-Datentypen, Formate und Werte.
Er spricht über diese Besondere Werte:
Und hat einige wichtige Hinweise:
Kann man nicht "stornieren" , feature, es ist Teil davon, wie die floats arbeiten.
Mehr über negative null, haben Sie einen Blick auf die Signiert zero Wikipedia-Eintrag.
Wenn Sie möchten, um zu überprüfen, welche "Art" von null, die Sie haben, können Sie mit der Tatsache, dass:
ist
false
(aber in der Tat0.0 == -0.0
).Haben Sie einen Blick hier für noch mehr von diesem: Java Floating-Point-Zahl Feinheiten.
InformationsquelleAutor der Antwort Mat
Vom wikipedia
Ich glaube nicht, dass Sie können oder Abbrechen müssen, die Funktion. Sie müssen nicht vergleichen, floating-point-zahlen mit ==, weil der precision-Fehler sowieso.
InformationsquelleAutor der Antwort Armen Tsirunyan
Einen guten Artikel, wie float-point-numbers) verwaltet werden, in java /Computer.
http://www.artima.com/underthehood/floating.html
btw: es ist echter Schmerz im Computer bei 2.0 - 1.0 produzieren könnte 0.999999999999, die nicht gleich to1.0 :). Das kann besonders leicht gestolpert, die in javascript-Formular-Validierungen.
InformationsquelleAutor der Antwort ya_pulser