Funktion atof() liefer nicht den richtigen Wert



  • Hallo Forum,

    ich möchte einen mit argv[] übernommenen String in eine float-Zahl umwandeln.
    Ich habe es mit

    atof(argv[2])
    

    versucht, aber atof() liefert einen sinnlosen Wert dafür.

    Verwendete Bibiotheken

    #include <stdio.h>
    #include <time.h>
    #include <math.h>
    #include <stdlib.h>
    

    Der entsprechende Programmteil ist

    float date = atof(argv[argc-1]);
    
    //Kontrollausgabe
    
    printf("<date> is %d\n, date);
    

    Die Printausgabe liefert vorher für <argv> den korrekten Wert 2455013.5, für <date> jedoch den Wert -1073741824.

    Ich bin ratlos... 😕
    Vielleicht kann jemand helfen?

    Greetz

    hiro



  • ^^ floats kannst ja auch nicht mit %d ausgeben.
    🙂



  • Hallo,

    deine printf-Ausgabe ist falsch. %d steht für signed decimal integer.

    Richtig ist:

    printf("<date> is %f\n", date);
    


  • Funzt. 😃

    Ich danke euch *tiefstmöglicheverbeugung*... 👍 👍 👍


Anmelden zum Antworten