Wie kann ich prüfen, ob eine null ist, positiv oder negativ?
Ist es möglich zu überprüfen, ob eine float
ist eine positive null (0,0) oder eine negative null (-0.0)?
Hab ich umgewandelt den float
zu einem String
und überprüft, ob der erste char
ist ein '-'
aber gibt es andere Wege?
InformationsquelleAutor der Frage e4lime | 2014-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Division durch.
1 /+0.0f
ist+Infinity
aber1 /-0.0f
ist-Infinity
. Es ist einfach, um herauszufinden, welches es ist mit einem einfachen Vergleich, so erhalten Sie:(dies setzt Voraus, dass
x
kann nur eine der beiden Nullen)InformationsquelleAutor der Antwort harold
Können Sie
Float.floatToIntBits
zu konvertieren es in einint
und Blick auf die bit-Muster:InformationsquelleAutor der Antwort Jesper
Definitiv nicht die beste Herangehensweise. Kasse die Funktion
Doku:
InformationsquelleAutor der Antwort andre baresel
Ansatz
Math.min
ist ähnlich zu dem, was Jesper schlägt vor, doch ein wenig klarer:InformationsquelleAutor der Antwort assylias
Double.equals
unterscheidet ±0.0 in Java. (Es gibt auchFloat.equals
.)Ich bin etwas überrascht, niemand hat erwähnt, diese, wie Sie scheinen mir klarer als jede Methode so weit!!!
InformationsquelleAutor der Antwort Reuben Thomas
Wenn ein float ist negativ (einschließlich
-0.0
und-inf
), es verwendet die gleichen Zeichen etwas als eine negative int. Das heißt, Sie können vergleichen, die integer-Darstellung zu0
wodurch die Notwendigkeit zu wissen oder berechnen Sie die ganzzahlige Darstellung von-0.0
:Die hat einen extra Zweig über die akzeptierte Antwort, aber ich denke, es ist mehr lesbar, ohne einen hex-Konstante.
Wenn Ihr Ziel ist nur zur Behandlung von -0 als eine negative Zahl, Sie verlassen konnten sich die äußeren
if
Aussage:InformationsquelleAutor der Antwort Kip
Negative:
Positive:
InformationsquelleAutor der Antwort Tridib