Probleme mit einer Klasse...



  • wow, schnelle antwort!

    aber nee, geht leider auch nich... kommt das gleiche dabei raus! also wieder ganzzahlen wie z.b. 32 oder 2 oder 62

    mfg thomas



  • vllt weil das letzte als int gehandelt wird:
    [cpp]
    Learning = ((double)Motivation * (double)Talent * (double)(1+(rand()%99)))/1000000.0f;[/cpp]
    sonst ka.
    schnelle antworten gibts nur, weil ich jedes mal ein sms bekomme, wenn ich neue mails kriege 🙄 *weg sucht um diesen sch*** auszuschalten*



  • nee, geht leider auch nicht!! aber danke für dein bemühen 🙂

    offtopic: ruf deinen email-account provider an und sags dem, stells evtl. im mail-client ab (gehts da überhaupt?) oder deaktivier die funktion email-benachrichtignug im forum (-> weniger sms)

    mfg thomas



  • thx, habs schon hingekriegt, über vodafone live settings (angebot von swisscom).
    @topic hab ich leider spontan ka sry



  • hat denn noch jemand anderes vielleicht einen vorschlag?

    mfg thomas



  • habs jetzt mit folgendem versucht, was die lernfähigkeit zwar nicht von talent und motivation abhängig macht, aber auch hier funktionierts nich 😕

    Learning = 1 / (1+(rand()%9));
    

    dabei kommt immer 0.00000 raus. wieso das?
    es müsste doch 1/10 bis 1 rauskommen, wobei sich der nenner immer von 1 bis 10 bewegt ?!

    danke,
    thomas



  • Learning = 1.0f / (1+(rand()%9));
    

    Sollte funktionieren 😉
    Kurt



  • nicht wenn die definition immer noch so wie im ersten post aussieht:

    unsigned short int Learning;
    


  • Cpt.Tanga schrieb:

    nicht wenn die definition immer noch so wie im ersten post aussieht:

    unsigned short int Learning;
    

    Gebe zu den thread nicht gelesen zu haben.
    Kurt



  • nee, nee!
    auf seite 7 hab ichs im einen post geschrieben... Learning ist als double definiert!!!

    aber mit:

    Learning = 1.0f / (1+(rand()%9));
    

    gibt das programm dennoch 0.00000 aus 😞

    mfg thomas



  • also bei mir funktioniert das folfende programm.

    #include <iostream>
    
    int main() {
      double learning  = 1.0f / (1+(rand()%9));
      std::cout << learning << std::endl;
      learning  = 1.0f / (1+(rand()%9));
      std::cout << learning << std::endl;
      learning  = 1.0f / (1+(rand()%9));
      std::cout << learning << std::endl;
      return 0;
    }
    

    output:

    0.5
    0.125
    1
    

    Kurt



  • da sollte der fehler eigentlich nicht liegen - aber sieh dir trotzdem mal die stelle mit nem debugger an. zeig am besten mal deinen code in der naehe der berechnung von 'Learning' und vor allem wie du 'Learning' ausgibst/ oder ueberpruefst.



  • hat sich erledigt...
    hatte es mit fixed ausgegeben, weil es vorher immer nur ganzzahlen anzeigte. jetzt wo ich bei der ausgabe "fixed" weggelassen habe funktioniert es (zwar ohne die faktoren "Talent" und "Motivation").

    danke an euch!

    mfg thomas

    edit: mit den faktoren hab ichs jetzt auch auf die gleiche weise versucht... das problem lag wohl an "fixed". jetzt gehts auch in abhängigkeit von "Motivation" und "Talent"! 🙂

    Learning = Motivation * Talent * (1+rand()%99)/1000000.0f);
    

Anmelden zum Antworten