Laut IEEE-Standard ist -0 gleich +0 beim Vergleich, auch wenn es sich in manchen anderen Operationen anders verhält als +0. Damit ist es doch nichtnegativ.
Ich verstehe nicht, was die Existenz neutraler Zahlen damit zu tun hat.
Rein semantisch, weil +0 und -0 beide existieren, würde ich -0 als negative Zahl betrachten. In gewöhnlichen Zahlensystemen ist sonst ja 0 eine neutrale Zahl (also nichtnegativ und nichtpositiv), auch wenn einfachkeitshalber das “+” bei der Darstellung positiver Zahlen weggelassen wird.
Sorry, nein, die Begriffe negativ und nichtnegativ sind klar definiert und beziehen sich darauf ob eine Zahl kleiner 0 oder größer gleich 0 ist. Wegen -0==0 ist -0 damit nichtnegativ.
std::signbit ist ein interessanter Punkt, ich würde vermuten, dass diese Funktion, wie der Name suggeriert, nur das sign bit bestimmen soll, und dass beim Verfassen der Doku nicht darüber nachgedacht wurde, ob die Bezeichnung “negativ” auch auf den Sonderfall -0 zutrifft.
Wenn wir ganz penibel sind, so steht -0.0 nicht für eine einzige Zahl, sondern für alle Zahlen kleiner als minus minFloat und größer gleich 0. Schließlich lassen diese sich nicht repräsentieren, weshalb -0.0 ein Enum auf die Menge der Zahlen (–minFloat, 0] ist. Anders ausgedrückt: -0.0 hat dieselbe Bedeutung wie die Farbe “Rot” als Enum.
Der Erwartungswert des Vorzeichens einer zufälligen Zahl aus dieser Menge ist negativ (da alle, bis auf endlich viele Zahlen negativ sind). Daher ist -0.0 eindeutig negativ.
Seit wann ist -0 nichtnegativ? Neutrale Zahlen gibts bei Gleitkommazahlen doch nicht.
Laut IEEE-Standard ist -0 gleich +0 beim Vergleich, auch wenn es sich in manchen anderen Operationen anders verhält als +0. Damit ist es doch nichtnegativ.
Ich verstehe nicht, was die Existenz neutraler Zahlen damit zu tun hat.
Rein semantisch, weil +0 und -0 beide existieren, würde ich -0 als negative Zahl betrachten. In gewöhnlichen Zahlensystemen ist sonst ja 0 eine neutrale Zahl (also nichtnegativ und nichtpositiv), auch wenn einfachkeitshalber das “+” bei der Darstellung positiver Zahlen weggelassen wird.
Außerdem sagt die C++ signbit Funktion:
Also muss ich ja Recht haben, da C++ die einzig wahre Programmiersprache ist.
Sorry, nein, die Begriffe negativ und nichtnegativ sind klar definiert und beziehen sich darauf ob eine Zahl kleiner 0 oder größer gleich 0 ist. Wegen -0==0 ist -0 damit nichtnegativ.
std::signbit ist ein interessanter Punkt, ich würde vermuten, dass diese Funktion, wie der Name suggeriert, nur das sign bit bestimmen soll, und dass beim Verfassen der Doku nicht darüber nachgedacht wurde, ob die Bezeichnung “negativ” auch auf den Sonderfall -0 zutrifft.
🤓🤓🤓
Wenn wir ganz penibel sind, so steht -0.0 nicht für eine einzige Zahl, sondern für alle Zahlen kleiner als minus minFloat und größer gleich 0. Schließlich lassen diese sich nicht repräsentieren, weshalb -0.0 ein Enum auf die Menge der Zahlen (–minFloat, 0] ist. Anders ausgedrückt: -0.0 hat dieselbe Bedeutung wie die Farbe “Rot” als Enum.
Der Erwartungswert des Vorzeichens einer zufälligen Zahl aus dieser Menge ist negativ (da alle, bis auf endlich viele Zahlen negativ sind). Daher ist -0.0 eindeutig negativ.