Mit Gleitkommazahlen rechnen

chillerStudent

Bekanntes Mitglied
Hallo,

wie kann ich in Java mit Gleitkommazahlen rechnen? Wenn ich zum Beispiel 0.000235 eingebe, soll 2.35 als ausgabe erscheinen.
Also: Maitisse soll größer als 1 und kleiner als 10 sein.
Wie gibt man folgende Gleichung in Java ein:
0.000235*10^-4
 
Ich kenne die Formatangaben noch nicht. Ich muss das als eine Methode schreiben:
Ich habe folgendes geschrieben:
Java:
class Formats {

   public static void main(String[] args) {
   	   
    Out.print("Eingabe: ");
    double d = In.readDouble();
    if (d <= 0 || d >= 1) {
      Out.println("Unzulaessige Eingabe!");
      return;
    }
    public printInNewFormat(d);
    d=de-4;
    Out.println(d);
        
  }

}
ist die Gleichung in der Methode richitg?
 
wollte jetzt erstmal Fehler aufzählen aber da ist ja so ziemlich jede Zeile falsch. Was willst du machen? Einen Double einlesen, überprüfen und ausgeben?
 
grad zu faul, bei dem Code das zu erklären.

Java:
	public static void main(String[] args) {
		double d = 0.000235;
		//.... Einlesen musst du selber machen
		System.out.println(printInNewFormat(d));
	}
	
	public static String printInNewFormat(double d) {
		int e = 0; 
		while ((int)d == 0) {
			d = d * 10;
			e++;
		}
		return (Math.round(d*100))/100.0 + " E-" + e;
	}

hab allerdings fast schon Angst vor Landei, dass ich gleich wieder eins wegen schlechter Implementierung auf die Finger bekomme 🙁
 
>> //.... Einlesen musst du selber machen

aber gut dann nochmal ausführlicher:

hab dir das nur als kompilierbares Beispiel gegeben. Den Rest musst du selber machen...
 
Aufgabe:
Ergänzen Sie im Programm Formats.java von der Webseite der Vorlesung
die Methode printInNewFormat. Das Programm soll eine Gleitkommazahl 0 < d < 1 in die
Darstellung
mantisse E exponent
mit 1 ≤ mantisse < 10 umwandeln. Es dürfen nur die bisher behandelten Sprachkonstrukte
von Java verwendet werden. Die main-Methode darf nicht verändert werden. Rundungsunge-
nauigkeiten (wie im zweiten der folgenden Beispiele) sind unerheblich:
Eingabe: 0.000567
Ausgabe: 5.67 E-4

Eingabe: 0.123456
Ausgabe: 1.2345599999999999 E-1

Der Quellcode:
Java:
class Formats {



  public static void main(String[] args) {

    Out.print("Eingabe: ");

    double d = In.readDouble();

    if (d <= 0 || d >= 1) {

      Out.println("Unzulaessige Eingabe!");

      return;

    }

    printInNewFormat(d);

  }



}
 
naja. hab dir doch schon den Algo geschrieben. Math.round kannst du dann weglassen, weil die Rundung ja garnicht gemacht werden muss.

Du musst es im Grunde nurnoch kopieren und richtig einsetzen 😉. Das nehme ich dir mal jetzt nicht ab, weil du anscheinend noch massive Probleme mit dem Stoff hast. Musst du selbst lernen.

also: hast du noch spezielle Fragen? gibt es irgendeinen Ansatz von dir?
 
habs dir ja eh schon gepostet:

Java:
class Formats {

	public static void main(String[] args) {
		Out.print("Eingabe: ");
		double d = In.readDouble();
		if (d <= 0 || d >= 1) {
			Out.println("Unzulaessige Eingabe!");
			return;
		}
		printInNewFormat(d);
	}
	
	public static void printInNewFormat(double d) {
		int e = 0; 
		while ((int)d == 0) {
			d = d * 10;
			e++;
		}
		Out.println(d + " E-" + e);
	}
}

anscheinend war copy&paste zu viel verlangt. Viel Erfolg bei deinem Studium!!

edit: allerdings ungetestet. kenn ja die tollen Klassen von deinem Lehrer nicht... System.out.println() wird zu einer statischen Methode der Klasse Out :autsch:. Kein Wunder, dass ihr nix lernt
 
Zuletzt bearbeitet:
habs dir ja eh schon gepostet:

Java:
class Formats {

	public static void main(String[] args) {
		Out.print("Eingabe: ");
		double d = In.readDouble();
		if (d <= 0 || d >= 1) {
			Out.println("Unzulaessige Eingabe!");
			return;
		}
		printInNewFormat(d);
	}
	
	public static void printInNewFormat(double d) {
		int e = 0; 
		while ((int)d == 0) {
			d = d * 10;
			e++;
		}
		Out.println(d + " E-" + e);
	}
}

anscheinend war copy&paste zu viel verlangt. Viel Erfolg bei deinem Studium!!

edit: allerdings ungetestet. kenn ja die tollen Klassen von deinem Lehrer nicht... System.out.println() wird zu einer statischen Methode der Klasse Out :autsch:. Kein Wunder, dass ihr nix lernt

DU BIST EINFACH DER/DIE BESTE. DANKE DANKE DANKE:toll:
 

Zurück
Oben