textfield.text to float

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • textfield.text to float

    Hi Zusammen,

    Ich habe mal wieder ein, von mir aus gesehen, simples Problem. Aber ich komme auf keinen grünen Zweig.

    Ich möchte die Eingabe in ein UITextfield zu einer float-Variablen konvertieren. Das sollte ja eigentlich kein Problem sein aber wenn ich es so mache:

    Quellcode

    1. NSString *string = textfield.text;
    2. float fromstring = [string floatValue];

    bekomme ich immer nur Nullen nach dem Komma.

    Bsp:
    Eingabe in Textfeld: 23.31
    float ergibt 23.00
    sollte aber auch 23.31 ergeben.

    Vielleicht kann mir jemand dabei Helfen.

    Vielen Dank und noch einen schönen Abend
    Bidi
  • muss es denn nun ein Punkt oder ein Komma sein ? #Bei Dir im Sample ist es ja ein . :)
    Auch Entwickler entwickeln sich !

    "Die Menschen, die verrückt genug sind zu denken, sie würden die Welt verändern, sind diejenigen, die es tun werden." - Steve Jobs
  • nitromethan schrieb:

    Versuch mal in das UITextField "12,34" also ein Komma dazwischen ;)


    lg

    Mit einem Komma funktioniert es leider auch nicht.

    apoc schrieb:

    Also das geht:

    Quellcode

    1. NSString *s = @"31.31";
    2. float f = [s floatValue]; //31.30999


    Entweder ist textfield NIL oder es steht ein Komma dazwischen, dann kommt entweder 0 oder 31 raus.

    Gruss
    Apoc

    Bei definieren eines Strings, ohne ihn von dem Textfeld aus zu laden funktioniert es bei mir auch, aber von dem Textfeld aus leider nicht. Ich verwende im Textfeld einen Punkt und das Textfeld ist nicht nil.

    nitromethan schrieb:

    muss es denn nun ein Punkt oder ein Komma sein ? #Bei Dir im Sample ist es ja ein . :)

    Es sollte ein Punkt sein.

    ramo schrieb:

    Der Punkt wird als Dezimaltrennzeichen benutzt, nicht der Beistrich ! Sonst wird aus 23,31 dann 23.00

    Quellcode

    1. float mVar1 = [meinTextFeld.text floatValue]; // Eingabe 23.31
    2. NSLog(@"%.2f", mVar1); // Ausgabe 23.31

    Bei mir funktioniert leider auch dein Code nicht, es ergibt auch bei Eingabe 23.31 nur 23.00

    Vielen Dank euch allen !

    Hoffe doch noch auf einen paar Lösungsansatz :)

    mfg Bidi
  • ramo schrieb:

    Probiere doch dieses Beispiel:


    Hi, ramo

    Bei dir funktioniert es natürlich ohne Probleme ;)

    Habe jetzt herausgefunden dass es daran liegt, dass ich mit "Eding Did End" eine IBAction aufrufe, dann funktioniert es nicht. Es funktioniert nur wenn es in "textFieldShouldReturn" ausgewertet wird. Werde halt die Variablen dort einsetzen :)

    Euch allen vielen Dank für eure Bemühungen :)

    mfg Bidi