Ich möchte testen, ob eine Zahl positiv oder negativ ist, vor allem auch im Falle von Null. IEEE-754 ermöglicht -0.0
, und es ist in Python implementiert.Wie kann ich in Python auf negative Null testen?
def test_sign(x):
return math.copysign(1, x) > 0
Und vielleicht (wahrscheinlich dauert länger laufen):
Die einzigen Abhilfen I Were finden konnte
def test_sign(x):
math.atan2(x, -1)
Ich konnte nicht eine bestimmte Funktion überall in den üblichen Bibliotheken finden, tat Ich übersehe etwas?
Edit: Das ist nicht meine aktuellen Plan mehr, aber wenn die Frage zu stellen Ich habe versucht, eine Funktion überlasten je nachdem, ob ein Argument positiv oder negativ war
(Warum dies relevant ist). Wenn dem Benutzer erlaubt wird, negative Nullen zu übergeben, würde die Mehrdeutigkeit aufgelöst, die für eine Eingabe mit null Werten gedacht war. Und ich denke, dass dies auch für andere Anwendungsfälle von allgemeinem Interesse sein könnte.
möglich Duplikat [negativ Null in Python] (http://stackoverflow.com/questions/4083401/negative-zero-in-python) – Abhijit
Nicht ganz denke ich. @quazgar fragt nach einer Möglichkeit, das Zeichen zu testen, nicht darüber. –
Sie sollten -0 nicht als negativ behandeln, siehe [hier] (https://en.wikipedia.org/wiki/Signed_zero) für einige Erklärungen oder diese Referenzen: [IEEE 754-1985] (http: // www. validlab.com/754R/standards/754.pdf) und [Was jeder Informatiker über Gleitkommaarithmetik wissen sollte] (http://www.validlab.com/goldberg/paper.pdf). –