- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 6 von 6

Thema: Problem mit fmod()

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.07.2004
    Beiträge
    270

    Problem mit fmod()

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    ich versuche gerade, fmod() zu verwenden, um den Rest einer Division zu erhalten, aber es klappt teilweise nicht.

    Mit fmod(47,10) müsste ich als Ergebnis 7 erhalten, bekomme aber 6!

    fmod(32,10) liefert dagegen das korrekte Ergebnis 2.

    Habt ihr ne Idee, wo der Fehler ist?

    Gruß

    Spurius

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    float fmod ( float x, float y )

    Du musst das Ergebnis auch als float überprüfen. Zur Umwandlung in einen int musst Du vorher 0.5 hinzuaddieren, da beim casten immer abgerundet wird.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.07.2004
    Beiträge
    270
    Hallo,
    vielen Dank, das wars! Was genau ist "casten" ?

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Typumwandlung, z.B.

    Code:
    int i = 0;
    
    i = fmod(42, 4);
    Hier finden mehrere implizite Typumwandlungen statt:
    42 und 4 werden von int nach float gewandelt, und das Ergebnis von fmod wird von float nach int gewandelt, wobei die Nachkommastellen weggeworgen werden.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    int i=47%10; -> i=7

    müsst doch für ganzzahlen besser geeignet sein oder?

    gruesse

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Das ist richtig. Laut Topic will er's aber für Fließkommazahlen wissen. Also z.B.

    Code:
    float remainder = fmod(42.3, 7.6);

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress