0 wird negativ, wenn sie mit etwas negativen multipliziert wird. Warum?

sceptical

Mitglied
Hallo,

Eine echte Anfänger-Frage: Ich hab ein kleines Übungs-Programm geschrieben, das mit Matrizen hantiert (ein zweidimensionales Array von Double-Werten).

Mir ist jetzt aufgefallen, dass eine 0 ein negatives Vorzeichen bekommt, wenn sie mit etwas negativen multipliziert wird. Warum ist das so? Wenn 0 mit irgend einer Zahl multipliziert wird, sollte doch schließlich wieder 0 rauskommen oder nicht ???:L?

Bei der Google Suche habe ich nichts wirklich hilfreiches gefunden...

Gibt es dafür eine Erklärung und weiß jemand wie man dieses Verhalten umgeht?

Beispielcode:

Java:
public void test() {
	double num = 0;
	num += 157;
	System.out.printf("%6.2f \n", num);
	num -= 157;
	System.out.printf("%6.2f \n", num);
	num *= -1;
	System.out.printf("%6.2f \n", num);
}

Liefert

Code:
157,00
  0,00
 -0,00

als Ergebnis.
 
Zuletzt bearbeitet:
Hallo
Das ist ganz normal. Schau dir mal das hier an Signed zero - Wikipedia, the free encyclopedia Ich denke das wird alles erklären.

Beachte das -0 und 0 als gleich angesehn wird. Es aber be bestimmten Rechnungen zu völlig anderen Ergebnissen kommen kann

-0.0 == 0.0 ist true
2.0 / 0.0 ist unendlich
2.0 / -0.0 ist aber -unendlich

Betrachtest du die 0 nicht als wie in der Schule betrachtet "Nichts" sondern unedlich kleine Zahl (x)
x* -1 = -x ! Wird alles ganz logisch.

Btw. Warum unendlich kleine Zahl???

Teile 1 / 0.1 dann 1 / 0.001 usw je näher du dich an die 0 annährst dest du größer wird das Ergebnis. Mit anderen worden wenn du durch 0 teilst kommt nicht "Error" sondern unendlich raus 😀



Samy
 
Zuletzt bearbeitet:
Ja, ich mein dass es sich dann quasi um einen Grenzwert handeln ist mir schon klar, aber gibt es auch eine Möglichkeit die 0 dann eben unsigned zu machen?

Warum es mich eigentlich stört: Hab auch eine kleine GUI zu dem Programm und dort werden die Werte ausgegeben. Nur sieht so eine -0 einfach unschön aus.

Ich kann natürlich jedes mal bevor ich die Werte ausgebe auf "negative" Nullen überprüfen und sie dann umformen, aber besonders elegant ist diese Lösung nicht...
 

Neue Themen


Zurück
Oben