Komischer ASSERT??



  • Morgen...

    Frage mich grade, ob ich noch recht bei Sinnen oder einfach nur müde bin 🙄

    Nachdem sich in meinem Programm rausstellte, dass (75 / 100) nicht gleich 0.75 ist hab ich folgenden ASSERT durchgeführt:

    ASSERT((75/100) == 0.75);
    

    Tja und die Aussage ist eben nicht wahr irgendwie 😞

    Steh ich total aufm Schlauch?? Bitte nicht hauen 🤡

    Gute Nacht 😕



  • Hihi, der Fehler ist aber auch gemein. 😃

    Ich hab mal in der MSDN nach "/" geguckt und unter der Überschrift "C Multiplicative Operators" die Erklärung gefunden:

    Du teilst eine ganze Zahl durch eine andere ganze Zahl. Damit geht C davon aus, dass das Ergebnis auch eine ganze Zahl ist.

    Schreib doch mal:

    ASSERT((75  /100  ) == 0   );
    // oder
    ASSERT((75  /100.0) == 0.75);
    // oder
    ASSERT((75.0/100  ) == 0.75);
    // oder
    ASSERT((75.0/100.0) == 0.75);
    

    Dann sollte es auch keine Assertion mehr geben.



  • Tausend Dank, ich war schon am verzweifeln 🙂


Anmelden zum Antworten