carookee - group communication for you
Home / JavaForum / Beginner
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
5.904 User online
1 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 10 von 2963 (0%) |<   <   >   >|

Autor MaxistXXL
Datum 22.10.05, 13:58
Betreff zuviele Nachkommastellen


Hiho, ich will die 5. Aufgabe zum Bundeswettbewerb Informatik lösen, habe aber ein Zahlentypenproblem.


public class Kleingeld {
    
    public static void main(String[] args) {
        int Kleingeld[] = {5,3,6,7,1,3}, i,j,k,l;
        float Preis,KleingeldGes = 0,Differenz;
        boolean x = false,y = false,z = false;
        
        Preis = (float)(0.01*((int)(Math.random()*995+5))); // Preis von 5 Cent - 9.99€ durch Mutter: 5 Cent einzelne Kaugummis, das billigste was man kaufen kann, 10€ Obergrenze um mit Münzen zu bezahlen.
        
        
        //Summe des Kleingeldes im Portmonaie
        KleingeldGes = (float) 0.01 * Kleingeld[0];
        KleingeldGes = KleingeldGes + (float) 0.02 * Kleingeld[1];
        KleingeldGes = KleingeldGes + (float) 0.05 * Kleingeld[2];
        KleingeldGes = KleingeldGes + (float) 0.10 * Kleingeld[3];
        KleingeldGes = KleingeldGes + (float) 0.20 * Kleingeld[4];
        KleingeldGes = KleingeldGes + (float) 0.50 * Kleingeld[5];
        //################################################
        
        //Berechnen der benötigten EuroStücke und der Differenz KleingeldGes-Preis
        if (KleingeldGes < Preis){
            Differenz = (int)(Preis-KleingeldGes);
            Differenz = Differenz + 1 + KleingeldGes;
            x = true;
        }
        else if (KleingeldGes == Preis){
            Differenz = KleingeldGes;
            y = true;
        }
        else{
            Differenz = KleingeldGes - Preis;
            z = true;
        }
        //#########################################################################
        
        //Berechnen des Rückgeldes
        if (x) {
            ;
        }
        System.out.println(KleingeldGes + "\t" + Preis + "\t" + Differenz + "\t" + x);
        
        
    }
}


Wenn ich den laufen lasse, sollte eigentlich nur eine Zahl im format X.XX rauskommen, X.X und X ist natürlich selten auch möglich. Allerdings kommt manchmal auch X.XX000000000005 oder ähnliches raus, und ich weiß nicht wieso. Das darf aber so nicht bleiben, weil ich sonst damit nicht rechnen kann. Könnt ihr mir sagen woran das liegt?


Diskussionsverlauf:
    Re: zuviele Nachkommastellen
zuviele Nachkommastellen

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com