Darstellungsproblem

Status
Nicht offen für weitere Antworten.
D

Dennis

Gast
Hi, ich bin noch ziehmlich unerfahren in Sachen Java.

Trotzdem habe ich mich mal drangesetzt und bin gerade dabei einen kleinen Kostenrechner für das Browsergame "ogame" zu basteln.

Dabei bin ich auf ein Problem in der Zeitberechnung gestoßen. Das Problem ist nicht Mathematischer Natur. Da ich mit mit der Zeitberechnung usw in Java noch gar nicht auskenne, habe ich mir ein bisschen was mathematisches ausgedacht. Soweit sogut. Vom Prinzip her funktioniert es. Es liegt an der Ausgabe des Ergebnisses.

Code:
      zeitgeb = (Math.floor((((kristallgebaeude + metallgebaeude) / (2500 * (1 + stuferobo))) * Math.pow (0.5 , stufenani))*60*60)); //Berechnung der benötigten Zeit in Sekunden

      
      
      if((zeitgeb/(60*60*24)>=1))
      {
        tagegeb= Math.floor((zeitgeb/(60*60*24))); //Prüfung ob es mehr als ein Tag ist
      }
      else
      {
        tagegeb=0;
      }


      if ((zeitgeb/(60*60)-(tagegeb*24))>=1)
      {
        stundengeb= Math.floor((zeitgeb/(60*60)-(tagegeb*24))); //Prüfung wie viele Stunden noch übrig bleiben
      }
      else
      {
        stundengeb=0;
      }


      if((zeitgeb/(60)-((tagegeb*24*60)+(stundengeb*60)))>=1)
      {
        minutengeb= Math.floor((zeitgeb/(60)-((tagegeb*24*60)+(stundengeb*60)))); ////Prüfung wie viele Minuten noch übrig bleiben
      }
      else
      {
        minutengeb= 0;
      }


      if((zeitgeb-((tagegeb*24*60*60)+(stundengeb*60*60)+(minutengeb*60)))>=1)
      {
        sekundengeb= Math.floor((zeitgeb-((tagegeb*24*60*60)+(stundengeb*60*60)+(minutengeb*60))));//Prüfung wie viele Sekunden noch übrig bleiben
      }
      else
      {
        sekundengeb=0;
      }
                         

      textField75.setText(tagegeb+" - "+stundengeb+":"+minutengeb+":"+sekundengeb); //Ausgabe des Ergebnisses

So, mein Problem besteht jetzt darin, dass die Zeitangaben (tagegeb, stundengeb...) Variablen des Typs double sind.
Folglich wird das Ergebnis auch so ausgegeben:

tagegeb.0 - stundengeb.0 : minutengeb.0 : sekundengeb.0

Gibt es nun die Möglichkeit, das Ergebnis zu formatieren, dass die Nachkommastellen nichtmehr angezeit werden? Außerdem wäre eine führende 0 nicht schlecht ;)

Ich hoffe ihr versteht, worin mein Problem liegt und dass ihr mir helfen könnt.

MfG Dennis
 

The_S

Top Contributor
Du kannst dir mal DecimalFormat anschauen. Dazu findest du im Forum hier auch ausreichend Beispiele.
 
D

Dennis

Gast
sry 4 Doppelpost aber:

Ich habe es jetzt wie folgt gemacht:

Code:
      DecimalFormat df =   new DecimalFormat  ( "00" );

      df.format(tagegeb);
      df.format(stundengeb);
      df.format(minutengeb);
      df.format(sekundengeb);


      textField75.setText(tagegeb+" - "+stundengeb+":"+minutengeb+":"+sekundengeb);

Es kommen aber folgende Fehlermeldungen:

Compiliere E:\Webspace\Kostenrechner\Kostenrechner.java mit Java-Compiler
Kostenrechner.java:1379: cannot resolve symbol
symbol : class DecimalFormat
location: class Kostenrechner
DecimalFormat df = new DecimalFormat ( "00" );
^
Kostenrechner.java:1379: cannot resolve symbol
symbol : class DecimalFormat
location: class Kostenrechner
DecimalFormat df = new DecimalFormat ( "00" );
^
2 errors

Ich verstehe nun nicht, wo mein Fehler liegt :oops:
 

The_S

Top Contributor
hast du DecimalFormat auch importiert? Du brauchst vor der deklaration deiner Klasse ein

Code:
import java.text.DecimalFormat;

[edit] BTW: es bringt dir auch nichts deine Zahlen ins "Nichts" zu formatieren. Die Formatierung wirkt sich nicht direkt auf das übergebene Objekt aus, sondern es wird ein String zurückgegeben.

Also:


Code:
String tag = df.format(tagegeb); 
String stunde = df.format(stundengeb); 
String minute = df.format(minutengeb); 
String sekunde = df.format(sekundengeb);
 
D

Dennis

Gast
Das mit dem Import hatte ich nicht....ich hatte java.text.DateFormat noch drin...hab mich verlesen...man ich sollte mich mal besser konzentrieren.

Und das mit der Auswirkung auf den String habe ich nicht gewusst...hätte ich mir aber eigentlich denken können(müssen)^^

Auf jeden Fall nochmal ein großes Dankeschön
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben