Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
wir haben eine Aufgabe bekommen Math.sin() in 360 grad auszugeben, aber es kommen nie gerade zahlen raus.
also zB
double a = Math.sin(360) ist nicht 0 sondern 0.999473943 usw.
Wisst ihr warum?
Double (Precision) arbeitet mit 8 Byte (also 64 Bit) in der Nachkommastelle. Aufgrund der endlichen Zahl an Nachkommastellen muss irgendwo gerundet werden und irgendwann macht sich das bemerkbar.
Double (Precision) arbeitet mit 8 Byte (also 64 Bit) in der Nachkommastelle. Aufgrund der endlichen Zahl an Nachkommastellen muss irgendwo gerundet werden und irgendwann macht sich das bemerkbar.
Lustig, Dein Nickname ist "DeepComputer". Dann diese Anfängerfrage.
Computer können super mit Ganzzahlen bis zur maximalen Grösse.
Sie können auch gut mit Floating Point - bis zu der definierten Genauigkeit.
Aber die ist das Zünglein an der Waage, wenn es darum geht, den Step von reeller Zahl zu Ganzzahl zu machen.
Du bist schon fast zwei (2) Jahre hier im Forum (Ganzzahl), dann solltest Du wissen, dass wir Deine Hausaufgaben nicht für Dich machen sollen.
Den Job Dir zu erklären, warum es bei Floating-Point-Berechnungen immer wieder Abweichungen in der Genauigkeit gibt, hat Dein Lehrer.
genau das dürfen wir eben nicht.
// Beachten Sie außerdem dass das Ergebnis der Winkelfunktionen
// Explizit in Grad (0-360) angegeben werden soll, nicht in RAD (0-2*PI)
@Phrasendreher Wollte dir kurz widersprechen, aber seine Threads sind ja ausschliesslich Hausaufgaben
@DeepComputer Poste doch mal bitte die exakte aufgabe. Dann beschreib was du schon verstanden hast und was fuer dich problematisch ist. Wir koennen gern helfen die Antwortzen zu finden, aber vorkauen eher nicht
uns erklärt und keiner hat es sich gemerkt. Und es ist nicht meine Hausübung sondern eine Frage des Interesses. Nach eine Psychoanalyse hab ich nicht gefragt lool
Ergänzung ()
Ich will verstehen, wie das falsche Runden zustande kommt. Das hat uns unserer Lehrer vorgerechnet, aber hat sich keiner gemerkt.
und ruhig mal 2-3 uwandlungen von hand durchzufuehren. Die IEEE 754 kot in fast allen modernen Sprachen zur repraesentation von nicht-ganzzahligen Werten zum Einsatz. Wenn man die einmal verstanden und 2-3 tage damit verbracht hat, hat man irgendwie ein viel intuitiveres Verstaendniss dafuer, wie Zahlen in Computern funktionieren. Ich kann das Gefuehl nicht so recht beschreiben
Die Funktion rundet/rechnet nicht falsch, sondern du benutzt sie falsch bzw. mit dem falschen Eingabewert.
Deine 360 Grad für einen vollen Kreis müsstest du bei der Funktion als 2π angeben, damit das gewünschte Ergebnis bei rauskommt.
An alle die auf das bogenmaß hingewiesen haben:
Ihr wisst aber schon, dass sin(360) im bogenmaß 0.9589... ergibt und damit ziemlich weit von dem Ergebnis weg ist, was der TE erhalten hat?