Erste Schritte Schönheits fehler beheben

Kilgour

Mitglied
Hy erstmal,

bin hier neu und hab erst vor kurzem mit java angefangen und wollte das gelernte mal testen für mich selber,
hab also mal angefangen das mir java Zinsrechnungen ausführt.
Funktioniert auch alles soweit =D ich möchte es aber etwas anders ausgegeben bekommen.

So sieht es momentan aus

G = 100
p% = 54
100 * 54 / 100
Prozentwert = 54

und so möchte ich das es aussieht

G = 100
p% = 54

100 * 54
_______

100

Prozentwert = 54

hier ist der Code dazu

Java:
package ProzentwertAusrechnen;

public class ProzentwertAusrechnen 

{ // auf
	public static void main (String[] args)
	
	{ // auf 
		int Grundwert 	=  100; // Variabel
		int prozentsatz =  54; // Variabel
		int hundert		= 100; // fest
		int Ergebnis	= Grundwert * prozentsatz / hundert ;
	
		System.out.println("G = " + Grundwert);
		System.out.println("p% = " + prozentsatz);
		System.out.println(Grundwert + " * " + prozentsatz + " / " + hundert);
		System.out.println("Prozentwert = " + Ergebnis);
		
	} // zu
} // zu

EDIT:
Mein Problem ist einfach ich weis nicht wie ich ein "leeren" absatz dazwischen bekomme bzw einige leer zeichen damit es mittig untereinander steht, und wäre nett wenn mir einer von euch ein tipp geben kann
 
Mit
Code:
System.out.println();
gibst du eine Leerzeile aus und für Leerzeichen musst du einfach Leerzeichen ausgeben.
 
Und was genau ist deine Frage?

Druck doch z.B. die Linie einfach so aus wie du auch die anderen Strings ausgibst.
 
Noch 2 allg. Tipps:
Variablennamen sollte man ausnahmslos immer klein schreiben. Das hilft bei der Unterscheidung zwischen Klassen und Variablen.

Definiere "hundert" als Gleitkommazahl. Also entweder
Java:
double hundert = 100;
oder als Konstante
Java:
grundwert * prozentsatz / 100.0;
oder
Java:
grundwert * prozentsatz / 100d;
oder auch beides zusammen
Java:
grundwert * prozentsatz / 100.0d;
oder casten, was aber nur in seltenen Fällen nötig wird und gemacht werden sollte, da es einfach verkompliziert.
Java:
grundwert * prozentsatz / (double)hundert;

Welches der mittleren 3 du nimmst ist Geschmackssache.
Ansonst ist das Ergebnis immer ein int, wodurch Nachkommastellen natürlich abgeschnitten werden. Demensprechend muss "Ergebnis" (bzw. "ergebnis") ebenfalls als double definiert werden, sonst wird es wieder zurückgecastet.
 
Definiere "hundert" als Gleitkommazahl.

Ist das in meinem fall (Der Prozentrechnung) relevant?
Die 100 ist und bleibt bei prozentrechnungen doch eigentlich immer 100 und wird ja niemals zu einer 100,2 oder ähnlichem da würde doch "int" ausreichen, oder hat das noch einen anderen grund denn ich jetzt nicht verstehe?

Bei denn anderen werten hab ich einen sinn gesehen es zu ändern, da ich sonst keine gleitkommazahl ausgeben kann.

für Leerzeichen musst du einfach Leerzeichen ausgeben.

Hab ich versucht nur macht er leider irgendwie nicht, ich häng nochmal meinen quellcode an

Java:
package ProzentwertAusrechnen;
 
public class ProzentwertAusrechnen  

	{ 
		public static void main (String[] args)
		
		{ 
			double grundwert 		= 100.50; // geändert in double
			double prozentsatz		=  50.50; // geändert in double
			int hundert				= 100; 
			double ergebnis			= grundwert * prozentsatz / hundert ; // geändert in double
		
			System.out.println("G = " + grundwert);
			System.out.println("p% = " + prozentsatz + "%");
			System.out.println();
			System.out.println(grundwert + " * " + prozentsatz); 
			System.out.println("______________");
			System.out.println();
			System.out.println(            hundert);
			System.out.println();
			System.out.println("Prozentwert = " + ergebnis );
			
		} 
	}

Das ergebniss ist das

G = 100.5
p% = 50.5%

100.5 * 50.5
______________

100

Prozentwert = 50.7525
 
Von Prozentrechnung hab ich keine Ahnung, aber du könntest dir eine Hilfsmethode schreiben, die x Zeichenketten auf so und so viele Zeichen verteil ausgibt. Kann ich auch machen, wenn du kein plan hast

Ahja, double-Wert nimmt man, damit der Division ebenfalls double ist
 
Anfangen konnte ich damit nicht viel aber hat mich auf die Idee zur lösung meines Problems gebracht bzw. hab mein fehler dadurch gefunden 😀

Java:
System.out.println("    "+  hundert); // "     " < fehlte


und mein ergebniss sieht nun so aus wie ich es haben wollte

G = 100.5
p% = 50.5%

100.5 * 50.5
___________

100

Prozentwert = 50.7525
herzlichen dank :toll:

EDIT: ok hier zeigt er mir es nicht so an wie in eclipse auf jeden fall steht die 100 jetzt genau mittig unter dem _______
 
Zuletzt bearbeitet:
Java:
    public static void main(String[] args) {
        columnPrint(new String[]{"Hallo", "Welt", "Draussen"}, 90);
    }

    public static void columnPrint(String[] columns, int rowLength) {
        int caret = 0;
        for (int i = 0; i < columns.length; i++) {
            System.out.print(columns[i]);
            caret += columns[i].length();
            while (caret < rowLength / columns.length * (i + 1)) {
                System.out.print(' ');
                caret++;
            }
        }
    }

Das wäre auch effizienter möglich, aber das würde es nicht so gut verdeutlichen.
 

Zurück
Oben