Problem mit einer float Zahl in Java

  • Hallo!
    Also ich hab folgendes Problem in Java: Hier ein Auszug aus einem Programm
    try { float zahl1 = EprogIO.readFloat();
    float zahl2 = EprogIO.readFloat();

    float ergebnis = zahl1 + zahl2;
    EprogIO.println(ergebnis);
    }

    catch (Exception e)
    {EprogIO.println("FALSCHE EINGABE");
    }

    Wenn ich nun für eine der beiden Zahlen 48fr eingebe gibt er zurecht FALSCHE EINGABE aus ist ja logisch.
    Jedoch wenn ich für eine der beiden Zahlen z.B: 1245d oder 452f eingebe akzeptiert er die eingabe als richtig
    Meine Frage ist nun ob bei float Zahlen solche eingaben die mit d oder f enden zulässig sind?

  • ich nehme an das das java das erkennt und eben wenn eine zahl mit f schreibst einen float-wert nimmt ... und wenn eine mit d schreibst einen double-wert welcher von der eprogIO einfach in einen float umgewandelt wird ...

    ... aber wie gesagt ... das nehm ich mal an ... habs nie ausprobiert ...

  • Float und Double sind bis auf die Genauigkeit quasi dasselbe, überhaupt beim Einlesen als String...Du könntest mit readDouble() sowohl Floats als auch Doubles einlesen AFAIK.

    yast, SuSEconfig, apt-get and rpm - the 4 horsemen of the apocalypse

    Platform of insanity :: http://www.dose-xp.org

  • Ja, das ist gleichbedeutend als wenn du z.B. im Code schreibst:
    long l = 355L; oder
    float f = 3.3F; usw.

    Willst du diese "Eingabefehler" vermeiden solltest du den eingelesenen String z.B. mit einer for-Schleife durchlaufen, und jedes Zeichen darauf überprüfen, ob es ungleich 0 bis 9 ist, und wenn ja "FALSCHE EINGABE" ausgeben.


    lg

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!