Addieren von Fließkommazahlen und ganzen Zahlen |
08.11.2016, 10:25 | Auf diesen Beitrag antworten » |
Kaluzo | Addieren von Fließkommazahlen und ganzen Zahlen Meine Frage: Hallo liebe Leute, ich habe ein paar Aufgaben zu erledigen und bin leider absoluter neuling im prgrammieren. in dieser Klasse soll sich eine "main"-Methode befinden, die eine ganze Zahl (n) und eine Fließkommazahl (d) liest. Dann soll eine Variable x mit 2.0 initialisiert werden, und n mal der Wert d dazu addiert werden. Vergleichen Sie nun das Resultat mit dem exakten Wert 2+(n*d). Testen Sie verschiedene Werte für n und d. Im wesentlichen verstehe ich die Aufgabe, aber ich habe absolut keinen Ansatz wie ich damit wieter arbeiten soll. Als Ansatz habe ich: Beispiel Eingabe: 1000000 1,734375 Ausgabe: 1734377.0 Differenz: 0.0 ich hoffe ihr könnt mir weiter helfen, mein Ansatz habe ich auch hinzugefügt, dieser ist aber sehr marginal da ich lediglich die beiden Eingaben deklariert habe. Meine Ideen: package de.ostfalia.gdp.ws16; import java.util.Scanner; // Fließkommazahlen addieren public class Addieren { public static void main(String[] args){ Scanner in = new Scanner(System.in); double d = in.nextDouble(); int x = in.nextInt(); in.close() ; { }}} |
|
|
08.11.2016, 15:01 | Auf diesen Beitrag antworten » |
Kaluzo | Ich bin nun doch deutlich weiter gekommen, dennoch habe ich bei der Eingabe: 1000000 1,1 Noch kein Richtiges Ergebnis, der Rest stimmt.# [B]public class Addieren { public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.println(" Geben sie 2 Zahlen ein "); int n = in.nextInt(); double d = in.nextDouble(); double x = 2.0; for (int i = 0; i < n; i++) { //System.out.println(i + ": " + x); x += d; } double z = (2.0 + d*n); double y = x - (2.0 + d*n); //Differenz in.close() ; { } System.out.println(z + " Differenz: "+ y); } }[B/] Bei der Eingabe wird erwartet: 1100001.9999886873 Differenz -1.1312775313854218E-5 Bei mir Komm aber das herraus: 1100002.0 Differenz: -1.1312775313854218E-5 Beim ersten wert, werden die Nchkommastellen also einfach aufgerundet. Kann mir jemand erklären wie ich das verhindern kann? |
08.11.2016, 15:04 | Auf diesen Beitrag antworten » |
eulerscheZahl | Indem du x ausgibst und nicht z. |
|