Eingabe in ein EditControl Steuerelement in eine float Variable umwandeln funktioniert nicht Ergebnis ist immer 0



  • Guude,

    ich habe einen Dialog erstellt, in dem der Benutzer in ein EditControl Steuerfeld direkt Werte eingeben kann, oder die Werte über ein SpinControl Steuerfeld eingeben kann. Ich bin nach diesem Beispiel[1] vorgegangen.

    Das Problem ist nun, das es sich hierbei um CString Variablen handelt, die den vom Benutzer eingegebenen Wert "speichern". Da ich aber mit diesen Werten rechnen muss, und das mit einem CString nicht funktionert, wollte ich den Wert mit der Funktion atof in ein Float casten. Aber ich bekomme immer nur 0 raus.

    float userEingabe;
    
    	float speicherVariable = atof(m_strEditBox);
    	userEingabe = (((abs(speicherVariable)) * 100) / 25.4);
    

    Vielen Dank für die Hilfe!

    Regards,
    buk

    [1] http://www.coding-help.de/drehfelder.html



  • Wenn Du "0" rausbekommst, dann war der Wert wohl nicht gültig... verwende lieber "sscanf" und prüfe ob die Umwandlung funktioniert hat!
    Auch solltest Du vermutlich nicht "UpdateData" vergessen aufzurufen...



  • Guude,

    danke Jochen Kalmbach für die Antwort.

    Als erstes hatte ich vergessen mir mit GetDlgItemText den Wert aus dem Steuerelement auszulesen, und in eine Variable zu speichern. Dann hatte ich bei meiner Berechnung eine falsche Variable eingesetzt. Es konnte garnichts anderes als 0 rauskommen 😃

    Nun funktioniert aber alles!

    Regards,
    buk


Anmelden zum Antworten