float zufallsbit



  • Hallo,

    Wir sollen für die Uni eine funktion schreiben welche uns für einen double wert für x>0 x=0 x<0 ... 1,0,-1 zurückgibt. Der LBA meinte, wir sollen auf das zufallsbit aufpassen (müssten angeblich für 0 einen wertebereich angeben, weil x sonst immer > bzw. < 0 ist). Ich lasse die funktion aber ganz normal nur dann 0 zurückgeben wenn x genau 0 ist und das funktioniert einwandfrei.
    Was hab ich da also nicht verstanden?

    mfg



  • float x=0.1;
    x=x*10;
    x=x-1;
    ist dieses x auch noch 0?
    manchmal leider nicht ganz genau, sondern viielleicht auch ein schnipselchen über oder unter 0.



  • symbian schrieb:

    wir sollen auf das zufallsbit aufpassen

    was ist denn in diesem zusammenhang ein "zufallsbit"?



  • wir sollen auf das zufallsbit aufpassen

    Cool.
    Aber er meint wahrscheinlich die Rundungen.



  • Hallo,

    oben meinte ich double, nicht float.
    die rundungsfehler treten bei floats auf, aber komischerweise nicht bei double.
    so ist bei float bereits x=0.1 x=x-0.1 nicht mehr 0,
    während ich bei double irgendwelche zahlen nehmen kann auch mit 100 kommastellen
    ohne dass rundungsfehler auftreten.

    weiß wer warum?

    mfg



  • nee nee, das ist so verwirrend, daß der name "zufallsbit" gar nicht so übel ist.
    mit anderen rechnungen wie

    float x=0.05; 
    x=x*40; 
    x=x-2;
    

    kanns dir passieren, daß es mit float glatt geht und mit double nicht. noch andere gehen mit beiden nicht und noch andere gehen mit beiden.

    es liegt daran, daß zahlen wie 0.1 gar nicht ganu als double oder float darstellbar sind. 0.1 ist nämlich im zehersystem glatt und im zweiersystem eine unendlich lange kommazahl (sowas wie 1/7 im zehnersystem 0,1428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428...)



  • Hallo,

    float x=0.05;
    x=x*40;
    x=x-2;

    Geht bei mir aber auch mit double.

    mfg


Anmelden zum Antworten