Limbajul C: float % float de ce expresia trebuie să fie de tip integral [duplicat] (Programare, C)

Dean Movy a intrebat.

Încerc să fac această operație, astfel încât să văd dacă această operație va lua doar partea completă (20%4) sau toată (20.4%4.4)

float x = 20.4;
float y = 4.0;
float z;
z = x%y;

Și am obținut acest compilator error:

expresia trebuie să aibă tip integral

Comentarii

  • Căutați cum să folosiți fmod. –  > Por JGroven.
3 răspunsuri
GoBusto

Puteți folosi doar % pentru a obține restul diviziunilor întregi.

Pentru a obține restul unei împărțiri în virgulă mobilă, utilizați funcția fmod() în schimb.

user2736738

Puteți utiliza modff pentru a rezolva problema.

float res = modff(x,&y)

Partea integrală este stocată în y iar partea fracționară este returnată. % nu poate fi utilizat cu tipuri neintegrale.

Daniel Johnson

nu se poate face modularea flotelor. o modalitate de a ocoli acest lucru.

float x = 20.4
int xint = (int)(x);
int y = 4;
float z = x % y + (x-xint)

Tags: