Zahl runden

Status
Nicht offen für weitere Antworten.
R

runden-will

Gast
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):
Code:
public float rundeAufZweiStellen(float kontoStand){ 
        return (float) (Math.round( kontoStand * 100 ) / 100.0);
	}

hier trotzdem mal das ganze programm zum nachvollziehen:
Code:
import java.lang.Math;
public class Konto_selfmade {
	
	private float kontoStand = 150f;
	private String name= "Schmitz";
	private static float gebuehren = 3.3f;
	
	
	
	/*public void getKontoStand(){
		System.out.println("Kontostand: "+kontoStand);
	}*/
	
	public void gutschreiben(float betrag){
		kontoStand=kontoStand+betrag;
	}
	
	public void abheben(float betrag){
		kontoStand=kontoStand-betrag;
	}
	
	public void abziehenGebuehren(float gebuehren){
		kontoStand=kontoStand-(kontoStand/100*gebuehren);
	}
	
	public void setName(String name){
		this.name=name;
	}
	
	public void ausgebenKontodaten(){
		System.out.println("Name: "+name+"\nKontostand: "+kontoStand);
	}
	
	public float rundeAufZweiStellen(float kontoStand){ 
        return (float) (Math.round( kontoStand * 100 ) / 100.0);
	}
	
	public static void main (String[] args){
	Konto_selfmade konto = new Konto_selfmade();
	
	konto.gutschreiben(200);
	konto.abheben(50);
	//konto.getKontoStand();
	konto.abziehenGebuehren(gebuehren);
	konto.ausgebenKontodaten();
	konto.rundeAufZweiStellen(kontoStand);		
	}
	
}
bin auch dankbar für kritik, falls ich sachen unlogisch gemacht hab oder besser machen könnte.

nochmal zum problem: in visual basic kenne ich so eine rundungsfunktion als

Code:
Format(Wert,"0")

oder auch
Code:
format(wert,"0.00")
oder eben so.
 
S

SlaterB

Gast
WAS GEHT NICHT?

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
 
R

runden-will

Gast
RUNDEN GEHT NICHT!

hier das wiki wonach ich mich gerichtet habe: http://www.zum.de/wiki/index.php/Runden_in_Java

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)
 

Leroy42

Top Contributor
Code:
  public void rundeAufZweiStellen(){ 
        kontoStand =  (float) (Math.round( kontoStand * 100 ) / 100.0); 
   }
  ...
  konto.rundeAufZweiStellen();

Edit: Hatte fälschlicherweise einen Typ float der Methode verpasst.
 

Der Müde Joe

Top Contributor
das ist darum, weil di in einer statischen Methode (static main(..))
auf eine nicht statisches Feld "kontoStand" zugreifen willst.
Des geht nicht.

Code:
public void runden(){
this.kontoStand = (..../100 );
}

so etwa würds gehen

EDIT: zu langsam
 
S

SlaterB

Gast
du musst einen Parameter kontoStand übergeben, das hat nix mit runden zu tun,


und was soll denn beim Runden rauskommen? was wird nicht gerundet?
290.1 gerundet ist immer noch 290.1, das geht??
 

Leroy42

Top Contributor
SlaterB hat gesagt.:
du musst einen Parameter kontoStand übergeben, das hat nix mit runden zu tun,
Das eben nicht!

SlaterB hat gesagt.:
und was soll denn beim Runden rauskommen? was wird nicht gerundet?
290.1 gerundet ist immer noch 290.1, das geht??

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 :cool:
 
G

Guest

Gast
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.
 
R

runden-will

Gast
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.
 

Leroy42

Top Contributor
Ja, das war mein Fehler den ich mittlerweile korrigiert habe (siehe oben)
Es muß heißen:
Code:
 public void rundeAufZweiStellen(){ 
        kontoStand =  (float) (Math.round( kontoStand * 100 ) / 100.0); 
   }

Dieses this. brauchst du sogut wie nie. Nur in Fällen,
indenen ein Übergabeparameter denselben Namen wie
eine Instanzvariable bekommt.

Code:
class MeinInt {
  int meinInt;
  public MeinInt(int meinInt) {
    this.meinInt = meinInt;
  }
}

Ohne das this. würde der Compiler dem Übergabeparameter
einfach sich selbst zuweisen, was wenig Sinn macht.

(Sorry, für das standardmäßige ihn/er)
 
S

SlaterB

Gast
@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
 
R

runden-will

Gast
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.
 
G

Guest

Gast
btw: nun möchte ich erweitern mit

Scanner taste=new Scanner(System.in);

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?
 
S

SlaterB

Gast
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
 
G

Guest

Gast
(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.
 
S

SlaterB

Gast
na das musst du wissen

benutzt du javac auf der Konsole oder irgendein Programm,

wenns mit javac nicht geht:
was kommt bei
java -version
raus

und was ist der genau Fehler?
es heißt übrigens
java.util.*;
und nicht
java.utils.*;
;)
 
G

Guest

Gast
ja, da hab ich mich hier verschrieben. im programm heißt es natürlich util.

wie schon erwähnt, habe ich 1.6 von java am laufen, aber ich kanns auch gern nochmal schreiben:
xxx@xxx:~$ java -version
Code:
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0-b105, mixed mode)

da. und ab 1.5 müsste der scanner eigentilch funktionieren...
 
G

Guest

Gast
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
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Zeiteinheit auf ganze Zahl runder runden Java Basics - Anfänger-Themen 4
H Zahl auf 2 nachkomma stellen runden Java Basics - Anfänger-Themen 13
F (Verständnis)Problem: Zahl auf 2 Nachkommastellen runden Java Basics - Anfänger-Themen 5
P Automatisch auf die nächst höere zahl runden? Java Basics - Anfänger-Themen 7
A Bestimmt blöde Frage: Zahl runden Java Basics - Anfänger-Themen 10
P double Zahl runden Java Basics - Anfänger-Themen 2
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
B Überprüfung dass Zahl nur aus 0,1 besteht Java Basics - Anfänger-Themen 2
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
B Hashmap richtig bauen, die Tripel auf Zahl abbildet? Java Basics - Anfänger-Themen 10
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
B 49-bit-zahl mit genau 6 Einsen bauen? Java Basics - Anfänger-Themen 21
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
M zahl raten Java Basics - Anfänger-Themen 1
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
I Zahl aufrunden (Zeit) Java Basics - Anfänger-Themen 43
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
R Fortlaufende Zahl Java Basics - Anfänger-Themen 3
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
B Methoden Rekursiv festellen, ob eine Zahl gerade-oft vorkommt oder nicht Java Basics - Anfänger-Themen 4
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
HelpInneed Zahl. Java Basics - Anfänger-Themen 2
R Perfekte Zahl Java Basics - Anfänger-Themen 8
D Mittlerste Zahl Java Basics - Anfänger-Themen 17
D Grösste Zahl in einer Folge herausfinden. (ULAM) Java Basics - Anfänger-Themen 9
Poppigescorn Häufigkeit einer zahl zählen Java Basics - Anfänger-Themen 5
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
J Verdoppeln einer Zahl (in dem Fall Münzen) Java Basics - Anfänger-Themen 4
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
S Algorithmus (reelle Zahl <65536 von dezimal zu dual) max. 10 Nachkommastellen Java Basics - Anfänger-Themen 4
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
Abraham42 Prozentsatz einer Zahl mehrmals Java Basics - Anfänger-Themen 2
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
V Beliebige Dreistellige Zahl Teiler finden Java Basics - Anfänger-Themen 4
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
S Zahl eingeben Java Basics - Anfänger-Themen 8
A Java . punkt neben einer Zahl. Java Basics - Anfänger-Themen 1
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
J Die größte Zahl anzeigen Java Basics - Anfänger-Themen 19
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
L Erhöhung der Zahl Java Basics - Anfänger-Themen 3
F Negative Zahl erzwingen Java Basics - Anfänger-Themen 3
N Eine Zahl solange teilen bis es nicht möglich ist und die Ergebnisse ausgeben Java Basics - Anfänger-Themen 23
T Eulersche Zahl e Java Basics - Anfänger-Themen 5
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G Programm schreiben: Zahl (n) eingeben, 1+1/n+2/n+3/n+....+n/n Java Basics - Anfänger-Themen 8
B Eine ganze Zahl zerlegen. Java Basics - Anfänger-Themen 4
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
H Harshad-Zahl (Nivenzahl) und Palindrom überprüfen Java Basics - Anfänger-Themen 2
I Wie viele 1 an Bits hat die Zahl x? Java Basics - Anfänger-Themen 5
A Gewürfelte Zahl ausgeben Java Basics - Anfänger-Themen 10
M Rationale Zahl erkennen - Kurze Frage zum Restwert nach Division Java Basics - Anfänger-Themen 3
A Überprüfen, ober eine Zahl Ziffer enthält Java Basics - Anfänger-Themen 12
O Markoff-Zahl Java Basics - Anfänger-Themen 22
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
L 10-Stellige Zahl hochzählen lassen Java Basics - Anfänger-Themen 1
H String und Zahl Java Basics - Anfänger-Themen 10
R Zahl 1 bis 100 erraten Java Basics - Anfänger-Themen 12
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
H OOP eine Zahl immer weiter durch 2 teilen Java Basics - Anfänger-Themen 15
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
H Würfelspiel, stop bei gleicher Zahl Java Basics - Anfänger-Themen 4
B Array - die Häufigkeit der Zahl zählen Java Basics - Anfänger-Themen 9
I Erste Schritte Testen, ob eine Zahl eine Primzahl ist Java Basics - Anfänger-Themen 8
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
I Eulersche Zahl Java Basics - Anfänger-Themen 6
F Produkt d. Ziffern einer Zahl..?! Java Basics - Anfänger-Themen 5
J Die Zahl herausfinden die durch 2 - 30 Teilbar ist... Java Basics - Anfänger-Themen 17
A Ungeordnetes Array ordnen, Zahl einlesen und einordnen Java Basics - Anfänger-Themen 23
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
M Mit 2 Threads eine Zahl hochzählen Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben