Faire des conversions de Type de données en integer [Résolu]

Signaler
Messages postés
43
Date d'inscription
dimanche 11 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2008
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
ReSalut
j'aimerai demander si mes types de données ont étés bien convertir, car j'aimerai avoir des resultats en Integer:
Mon code:

void DrehmatrixKonver1(HDC hdc,COLORREF farbe, int Xzentrum, int Yzentrum)
{
  double RADIUS = 100.5;  int x0 0, y0 RADIUS;  int x1 0, y1 RADIUS;
  double theta = 0.0;
  double dTheta = 0.0;
     // Minimal theta berechnen
     //y1 = 1;
    //dTheta = acos(sqrt(9999.0) / RADIUS);
     dTheta = (2.0/360.0)*2*PI;     
     SetPixel(hdc, x1 + Xzentrum, y1 + Yzentrum, RGB(255, 255, 255));
     x0 = x1;
     y0 = y1;
     while(theta <= 2.0 * PI)
     {
        theta += dTheta;
        x1 = int(x0 * cos(dTheta) - y0 * sin(dTheta));
        y1 = int(x0 * sin(dTheta) + y0 * cos(dTheta));
        SetPixel(hdc, x1 + Xzentrum, y1 + Yzentrum, RGB(255, 255, 255));
        x0 = x1;
        y0 = y1;
     }

}
Merci bien de m'aider
A++

5 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Oui.

C++ (@++)<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
double = 64bit
int = 32bit

Il y aura perte de donnée.
Tu perdras tout ce qui suivra la virgule.
Exemple:
555.845666
sera tronqué en:
555

C++ (@++)<!--
Messages postés
43
Date d'inscription
dimanche 11 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2008

je sais mais, j'aimerai calculer le tout en double et à la fin convertir les résultats en integer même s'il perte.
a++
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Rien à convertir. Suffier de faire un cast

double d = 54323.312312312
int i = (int)d; // 54323

C++ (@++)<!--
Messages postés
43
Date d'inscription
dimanche 11 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2008

donc
double RADIUS = 100.5;  int x0 0, y0 RADIUS;  int x1 0, y1 RADIUS;

plus bas je dois faire

double RADIUS = 100.5;  int x0 0, y0 (int)RADIUS;  int x1 0, y1(int) RADIUS;

oui?