String to Float: keine Ausgabe



  • Hi,

    ich möchte einen String in einen Integer wandeln. Mit der Befehlsfolge geht das auch:

    int s3Temp = Integer.parseInt(s3);

    Aber wie geht das wenn in dem String eine Fließkommazahl steht?

    mfg



  • Was willst du machen?

    In dem String steht eine Fließkommazahl.
    Willst du aus dem String jetzt die Fließkommazahl parsen oder willst du sie zu einer Ganzzahl (Integer) parsen und runden?



  • ich möchte die nicht runden das solls chon genau so rauskommen wies drin ist... die zahl ist immer so aufgebaut "xx.x"

    Wobei wenns einfacher wäre könnte man auch runden.



  • Als Integer parsen, oder was?



  • 00Albert schrieb:

    ich möchte die nicht runden das solls chon genau so rauskommen wies drin ist... die zahl ist immer so aufgebaut "xx.x"

    Wobei wenns einfacher wäre könnte man auch runden.

    Wie wär's, wenn du einfach ne Gleitkommazahl aus dem String rausholst?:

    String s = "2.75";
    float f = Float.parseFloat(s);
    

    Sieht doch recht locker aus...

    EDIT: Schau doch bitte mal in die Java-Doku (java.sun.com/docs) bevor du solche trivialen Fragen stellst. Die Klasse Float gehört zum java.lang Package, sozusagen das Survival Paket für Java-Entwickler.

    MfG

    GPC



  • dann mal eine andere frage warum wird mit:

    float s3Temp = Float.parseFloat(s);
    if((s3Temp>= 16) && (s3Temp<= 25)) {screen2D.drawImage(imageT1,50,250,this);}

    die nachstehende anweisung nicht abgearbeitet

    aber wenn ich den String so ins Float wandle schon:

    float f = Float.valueOf(s3).floatValue();
    if((s3Temp>= 16) && (s3Temp<= 25)) {screen2D.drawImage(imageT1,50,250,this);}

    Ich nehm an nachkommastellen muß man nicht zwingend angeben.

    mfg



  • 00Albert schrieb:

    dann mal eine andere frage warum wird mit:

    float s3Temp = Float.parseFloat(s);
    if((s3Temp>= 16) && (s3Temp<= 25)) {screen2D.drawImage(imageT1,50,250,this);}

    die nachstehende anweisung nicht abgearbeitet

    Weil s3temp kleiner 16 oder größer 25 ist. Folgendes klappt ja:

    String s = "20.5";
    float x = Float.parseFloat(s);
    
    if ( x >= 5f && x <= 30f ) {
      System.out.println("Foobar");
    }
    

    aber wenn ich den String so ins Float wandle schon:

    float f = Float.valueOf(s3).floatValue();
    if((s3Temp>= 16) && (s3Temp<= 25)) {screen2D.drawImage(imageT1,50,250,this);}

    Das darf sich nichts nehmen, denn in der Doku steht bei der Methode parseFloat:

    Returns a new float initialized to the value represented by the specified String, as performed by the valueOf method of class Float.

    D.h. die tun das selbe. valueOf(s3) gibt ein Float Objekt zurück und floatValue holt das float raus. Muss auf's selbe rauslaufen.

    MfG

    GPC


Anmelden zum Antworten