Zum neuen Informatik-Forum >>
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Problem mit Sinus und manchen Rechnungen

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Java/JSP
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Michi
Gast





BeitragVerfasst am: 11. Nov 2005 22:31    Titel: Problem mit Sinus und manchen Rechnungen Antworten mit Zitat

Hallo
Ich hab einen Taschenrechner mit Java programmiert
Der Taschenrechner gibt mir aber beim Sinus völlig unsinnige Werte aus ich hab schon in Grad umgewandelt aber es hat nichts gebracht Außerdem gibt er mir bei manchen Rechnungen nicht ganz exakte werte sondern ziemlich lange Zahle aus z.B.: 1.2*3=3,5999999999999999999999999999996 kann mir hier irgendwer helfen
danke
Nach oben
Leviathan



Anmeldungsdatum: 11.11.2005
Beiträge: 1

BeitragVerfasst am: 11. Nov 2005 23:21    Titel: Antworten mit Zitat

hi!

also...........

math.sinus() erwartet einen double und gibt auch einen double aus(kannst du in der dokumenntation nachlesen bei sun.com)

double ist mit 64 bit festgelegt wobei ein paar stellen die zahl sind und der rest ist für die genauigkeit. trotzdem kann ein double nur eine ca. 14-stellige genauigkeit darstellen und deswegen wird dein wert den du berechnest nicht genau!

es wäre von vorteil wenn du zumindest die standard-ergebnisse von sinus und cosinus also 0°, 30°,45°,60° und 90° extra angibst. ansonsten kommen ja für sinus und kosinus unendlich lange werte raus.

pass auch auf wenn du 1/2 berechnest wenn jetzt...
Code:

int a=1;
int b=2;
int ergebnis;

ergebnis=a/b
System.out.println(ergebnis);

so wird nur 0 angegeben weil int keine gleitpunktzahlen darstellen kann!

ich hoffe ich konnte dir helfen, wenn nicht kannst du unter http://www.gailer-net.de alles nochmal nachlesen.

Ist ein sehr gutes tutorial.

MFG Leviathan

_________________
System.out.println("Hello World!!");
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Brandti
Gast





BeitragVerfasst am: 13. Nov 2005 13:44    Titel: Antworten mit Zitat

Also zumindest bei der Rechnung mit dem 1.2 ist das denke ich ein anderes Problem.
Es ist nämlich schwer, auch einfache Zahlen, wie 1.2, im Binärsystem zu schreiben.
Viele Zahlen, die in unserem Dezimalsystem ganz einfach sind, sind im Binärsystem periodische Bruchzahlen, also unendlich lang. Daher können sie nur "ungefähr" angegeben werden, wodurch solche Rechenfehler entstehen.

Eine Möglichkeit diese zu umgehen, wäre einfach das Ergebnis zu runden, bevor man es ausgibt, was natürlich unschön ist. Eine andere Variante wäre, alles erstmal mit Zehnerpotenzen zu multiplizieren, sodass es keine Kommazahlen mehr sind, oder, was ich für das beste halte, alles in Bruchzahlen umzuwandeln, also in diesem Fall 12/10 * 3/1 = 6/5 * 3/1 = 18/5 = 3.6. Damit hätte man auch gleich die Möglichkeit den Benutzer Bruchzahlen eingeben zu lassen.
Nach oben
Brandti
Gast





BeitragVerfasst am: 13. Nov 2005 18:37    Titel: Antworten mit Zitat

Übrigens kann man der Methode Math.sin(double a) sehr wohl einen Integer-Wert übergeben, da dieser intern umgewandelt wird.

Außerdem wäre ein kleines Beispiel ganz nett, bei dem die unsinnigen Ergebnisse beim Sinus rauskommen!

MfG Brandti
Nach oben
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Java/JSP Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen