Math.cos liefert komische Werte

Das hat verschiedene Ursachen. Unmittelbar einleuchtend dürfte sein, dass Du nie genaue Werte erhalten wirst, sobald π im Spiel ist, wie im Bogenmaß, denn diese Zahl hat nun einmal unendlich viele Stellen.

Abgesehen davon ist 6.123233995736766E-17 = 0,00000000000000006123233995736766 - das sollte für die meisten Anwendungen wohl nah genug an 0 sein, oder? 😉
 
Java:
		System.out.println(Math.cos(Math.PI / 2));
		System.out.println(Math.sin(Math.PI));
		System.out.println(Math.cos(Math.toRadians(90)));
		System.out.println(Math.sin(Math.toRadians(180)));
		System.out.println(Math.cos(Math.PI / 2) == Math.cos(Math.toRadians(90))
				&& Math.sin(Math.PI) == Math.sin(Math.toRadians(180)));

Weil zwei Dinge darein spielen:
1. cos und sin sind nicht genau und berechnen nur Annäherungswerte,
2. die Argumente Pi/2 und Pi sind irrationale Zahlen und können also nicht zu 100 % genau angegeben werden.

Aber 3. wenn Dich das stört solltest du runden. 😉
 
Neulich hörte ich, wie jemand auf die "Mantissengläubigkeit" schimpfte, die sich heutzutage breitmacht.

Gewöhne dir lieber folgendes an: Wenn die Zahl mehr Stellen hat als du auf einen Blick zählen kannst (d.h. du darfst nicht zählen müssen, sondern mußt sofort sehen können daß es z.B. nur drei Stellen sind), dann schaue ob hinten ein 'E' steht und sieh dir die Zahl danach an, den Exponenten.

Und gewöhne dir an, wenigstens bis 9/-9 in SI-Vorsätzen zu denken. xE-3 -> Millix -> schon recht klein, xE-6 -> Mikrox, interessiert schon nur noch in Sonderfällen, xE-9 -> Nanox -> wann hast du jemals ernsthaft Nanoliter, Nanogramm oder Nanometer (in diesem Bereich kannst du anfangen Atome zu zählen) verwendet, xE-12 -> Picox -> praktisch außerhalb jeder Nachweismethode von irgendwas.
 
Um die Größenordnung mal bildhaft darzustellen, kann man mal ein wenig rechnen: die Sonne ist 149,6 Mio. Kilometer von der Erde entfernt. Stellt man sich nun eine Linie von der Erde bis zur Sonne vor, wie groß wäre die Abweichung zwischen der tatsächlichen und der berechneten Lage (Kosinusrichtung) auf der Sonne, wenn der Kosinus mit einem Fehler von 6.123233995736766E-17 berechnet wird?

149 600 000 000 m x 6.123233995736766E-17 = 0,000009160358057622203 m, also knapp 10 µm. Ein dünnes Haar hat eine Dicke von 20 µm...
 
die Sonne ist 149,6 Mio. Kilometer von der Erde entfernt
Das sind ja nur 149,6x10^-9 Meter, bzw 149,6Mm (Megameter, etwas ungewöhnlich, aber richtig).
Oder 1,496E11 Meter.

Das sollte jedem Studenten und Lehrling jeder technischen Fachrichtung Tag und Nacht um die Ohren gehauen werden: Man gebe ihnen ein Gewicht von 1kg und 1g und lasse sie beides solange in der Hand wiegen (alternativ lasse man es ihnen auf den Fuß fallen), bis sie ein Gefühl für den Faktor 1.000 entwickelt haben.
 

Zurück
Oben