Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hallo, ich habe folgendes programm erstellt zur übung. nun wollt ich ein wenig rumexperimentieren mit zahlenrunden, und schon hab ich das programm versaut :-/ habe gegoogelt und eine anleitung gefunden die es wie folgt beschreibt (so habe ich es dann auch eingebaut):
konto.rundeAufZweiStellen(kontoStand);
ist natürlich ein komischer Aufruf, wieso soll man von außerhalb den internen Kontostand eingeben,
außerdem wird das Ergebnis nirgendwo gespeichert
wenns also komisch ist: ich hab das nicht erfunden, sondern schlichtweg nur die suche benutzt.
bei
Code:
konto.rundeAufZweiStellen(kontoStand);
sagt er mir zudem
Code:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot make a static reference to the non-static field kontoStand
at Konto_selfmade.main(Konto.java:48)
und runden tut er wie gesagt auch nicht (vorher, inzwischen giebt er ja nichts mehr aus, wegen dem fehler in er main oben)
Ich vermute, daß runden-will eben davon ausgegangen ist,
daß seine Instanzvariable gerundet wird; und wenn er die Methode
wie bisher ohne Ausgabe aufgerufen hat, konnte er logischerweise
nichts gerundetes sehen
vielen dank. nun hat er aber leider wieder 2 fehler gefunden. einer bei
Code:
public float rundeAufZweiStellen(){
dort sagt er (oder es):
Code:
Name: Schmitz
Kontostand: 290.1
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
This method must return a result of type float
at Konto.rundeAufZweiStellen(Konto.java:35)
at Konto.main(Konto.java:47)
zeile 47 besagt das folgende:
Code:
konto.rundeAufZweiStellen();
wofür ist das "this.irgendwas" eigentlich gut? ich hatte mal ein programm geschrieben, da hat mir mein lehrer das geraten. zB this.kontoStand=kontoStand+irgendwas. damit der kontoStand quasi mit dem neuen kontoStand überschrieben wird? wir haben das noch nicht gehabt, er hats mir persönlich nur als tip mitgegeben als er bei mir vorbeikam um zu gucken.
sry, das oben kam von mir. hätt ja zumindest mal einen namen angeben können.
@leroy42: ja das hast du richtig gesehen, SIE wollte, dass bei der ausgabe eben eine gerundete zahl mit 2 nachkommastellen angezeigt wird aber leider funktioniert das nicht, wegen der fehler die ich nun habe.
@Vermutung
ich vermute das auch, weise in dieser Form darauf hin,
um die Unzulänglichkeiten in der Problemstellung zu verdeutlichen
----
bei der Operation rundeAufZweiStellen() ist kein Rückgabewert mehr nötig, ändere diesen in 'void'
-------
eine Zahl kann man nicht so runden, dass zwei Stellen angezeigt werden,
das ist eine Frage der Ausgabeformatierung,
da kannst du mit Strings basteln oder NumberFormat/ DecimalFormat verwenden
kei problem, ist ja nunmal so das frauen in der minderheit da sind, war auch net bös gemeint
super, jetzt funktioniert es insoweit dass er zb ausgibt: 175,45. das wollte ich ja so. eine frage habe ich noch: gebe ich einen bestimmten stand vor, kommt es vor dass er nur zehn cent am ende hat, dann wird es wie folgt dargestellt:
145.1
am liebsten wäre es aber wenn er daraus
145.10
machen würde. kann man das irgendwie ändern? ich dachte dass ist im runden gleich mit drin, dass er dort eine null einfügt, aber anscheinend doch nicht.
also etwas per tastatur einlesen. zum beispiel welcher betrag abgehoben werden soll. ich habe java 1.6 drauf und habe über die klasse auch das
import java.utils.*;
eingefügt, aber er erkennt den scanner nicht. in einem programm von gestern hat er ihn erkannt. woran kann das liegen? er gibt mir die optionen, die klasse scanner einzufügen, was aber schwachsinn ist, oder "create interface scanner", was ich aber sonst auch nie gebraucht habe. warum erkennt er den scanner nicht?
falls übersehen:
eine Zahl kann man nicht so runden, dass zwei Stellen angezeigt werden,
das ist eine Frage der Ausgabeformatierung,
da kannst du mit Strings basteln oder NumberFormat/ DecimalFormat verwenden
> aber er erkennt den scanner nicht
immer angeben: welche IDE falls verwendet oder welcher Compiler
(hab ja oben schon gesagt dass ich den pfad neulich zu java 1.6 angeben musste, und soweit ich weiß kennt er den scanner schon ab 1.5) mit ide keine ahnung, was das ist oder wo ich das sehe.
edit: anscheinend verliert er jedes mal beim schließen des programmes (und nach abspeichern) eine eingestellte jvm. er hat sich aus dem nirgendwo eine 1.4 maschine hergeholt, obwohl ich in /usr/lib/jvm nur 1.5 und 1.6 habe. nunja, 1.6 eingestellt, es funktioniert nun. vielen dank