4 Stimmen

cout druckt "-0" anstelle von "0"

#include <iostream>
using namespace std;

int main()
{
    double u = 0;
    double w = -u;
    cout << w << endl;
    return 0;
}

Warum gibt dieses großartige Stück Code -0 und nicht 0 wie man es erwarten würde?

0 Stimmen

Ein wenig mehr Kontext wäre wünschenswert (z. B. der verwendete Compiler)

0 Stimmen

Großartiger C++-Code kann keine using namespace std; .

1voto

Saulius Valatka Punkte 6549

Denn ein Double kann tatsächlich die Werte -0, +0, -unendlich, +unendlich und NaN annehmen, was das Ergebnis verschiedener interessanter Ausdrücke sein kann, wie 0/0.

Siehe aquí für weitere Informationen.

1voto

Weil Ihre Erwartungen falsch sind.

Die IEEE schreibt vor, dass positive und negative Nullen getrennt dargestellt werden müssen.

Das ist es, was Sie hier sehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X