Methode für Kommazahl

SMoeller

Mitglied
Hallo erst mal,
ich habe (versucht) ein Programm zu erstellen, in das man man eingibt, wie viel Äpfel und Birnen man kaufen will. Dann spukt das Programm aus, wie viel alles kostet (Netto und Brutto und alles zusammen), wie viel Birnen und Äpfel man insgesamt hat... . Dazu habe ich die Methode "double" verwendet. Den Preis für ein Kilo Äpfel habe ich auf 2.50Euro gesetzt. Den für die Birnen habe ich auf 1.50Euro gesetzt. Wenn ich nun aber zum Beispiel eingebe, dass ich eine Birne und einen Apfel kaufen möchte, sagt das Programm nicht, dass ich 4Euro zu zahlen habe, sondern es sagt mir, dass ich 2.51.5EUro zu zahlen habe.
Nun möchte ich gerne wissen, ob das an der Methode liegt oder an etwas anderem (und wie ich es beheben kann).
 
zuerst solltest du den programmcode vielleicht einmal posten damit man den fehler besser finden kann...

wenn du die rückgabe als String machst musst du die preise vorher in einer variable addieren und dann in den string einfügen weil innerhalb eines strings ist der + operator nicht zur addition gedacht sondern hat den zweck strings zu verknüpfen und dann sieht es so aus wie deine rückgabe...
 
Jop, das ist der fehler.

Du musst deine String-Werte in doubles umkonvertieren und dann addieren:

angenommen apfelwert und birnenwert sind Strings

....

double apfel=(new Double(apfelwert).todouble());
double birne=(new Double(birnenwert).todouble());

double result=birne+apfel;

System.out.println("Äpfel und Birnen addiert ergeben: "+result+" Euro!");

...

Ansonsten vollziehst du eine String-Konkatination sprich du nimmst den ersten string und verknüpfst ihn mit dem zweiten. Was rauskommt hast du ja selber programmiert ;)


Gruss,
Torsten
 
Und wie addiere ich die zwei Preise in einer Variablen (ich bin noch ein kleiner Anfänger und weiß noch so gut wie gar nix über Java)
 
Ich möchte mich recht herzlich für die schnelle Hilfe bedanken (auch wenn ich es etwas anders gelöst habe, aber immerhin weiß ich, wo der Fehler lag). Allerdings möchte ich nun wissen, ob man das, was zwischen dem + + steht als String bezeichnet wird oder was ihr damit meint. Außerdem würde ich gern noch wissen, was ich wo eingeben muss, damit das Programm auf zwei Stellen rundet.
 
nen float rundet auf 2 stellen nach dem komma und nen double auf 4 (wenn ich mich nich irre), aber wenn z.b 2,50 raus kommt streicht er die null da sie "unnötig" ist. ob und wie man das ändert wüsst ich nun nicht....

und ja das zwischen den + ist ein teilstring der mit + zu einem ganzen string (dem kompletten rückgabewert) verknüpft wird. string ist eine java klasse für zeichenketten....

um solche grundlagen zu erlernen solltest du vieleicht mal nen gutes buch kaufen oder einfach hier mal einige kapitel durchlesen
http://www.galileocomputing.de/openbook/javainsel4/
 
Moin,
wo ich das hier lese, kommt mir dein Programm sehr bekannt vor. Ich hab nämlich von unserem Prof so einen ähnlich Aufgabe bekommen. Hast du dir die Aufgabe selber ausgedacht? Haben wir den selben Prof? Oder "leiht" mein Prof sich Aufgaben aus?

Bluescreen
 
Original von bl4ck29
nen float rundet auf 2 stellen nach dem komma und nen double auf 4 (wenn ich mich nich irre)
Sei mir nicht böse, aber Du empfiehlst anderen, dass sie sich doch bitte mal die Grundlagen durchlesen sollen, und schreibst selbst solchen Unsinn!

Hier 'ne kleine Beispiel-Klasse, wie man das Runden realisieren kann:
Code:
public class Runden {

	public static void main(String[] args) {
		double y = Math.sqrt(2); 
		System.out.println(y);  //Hier wird nix automatisch gerundet ;)
		System.out.println(y + " --> " + zweiStellen(y));
		System.out.println(y + " --> " + vierStellen(y));
		}
	
	public static double zweiStellen(double wert) {
		return Math.rint(wert * 100) / 100;
	}
	
	public static double vierStellen(double wert) {
		return Math.rint(wert * 10000) / 10000;
	}
}
 

Neue Beiträge

Zurück