Faire des conversions de Type de données en integer

Résolu
laura1978 Messages postés 43 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 21 janvier 2008 - 16 janv. 2008 à 17:55
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 - 17 janv. 2008 à 18:11
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

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
17 janv. 2008 à 18:11
Oui.

C++ (@++)<!--
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
16 janv. 2008 à 19:47
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++ (@++)<!--
0
laura1978 Messages postés 43 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 21 janvier 2008
17 janv. 2008 à 12:48
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++
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
17 janv. 2008 à 15:55
Rien à convertir. Suffier de faire un cast

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

C++ (@++)<!--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
laura1978 Messages postés 43 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 21 janvier 2008
17 janv. 2008 à 18:03
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?
0
Rejoignez-nous