Go Down

Topic: division de int peut elle donner un float ? (Read 1 time) previous topic - next topic

KiliYaBB

Bonjour,

Supposons le bout de code suivant :

Code: [Select]
void setup{
int a =11;
int b =7;
float c =0.0;
}

void loop {
c= b/a;
}


est ce que c sera bien un float ? car on divise des int alors...

Faudrait il forcer, si ou avec quel moyen ?

Merci !

churchill

#1
Apr 08, 2010, 09:39 am Last Edit: Apr 08, 2010, 09:40 am by churchill Reason: 1
Tu auras effectivement un float... mais à 0.
En fait la division se fera sur deux entiers, et aura comme résultat un entier. Ensuite seulement le résultat sera converti en float pour être affecté à c
Il te faut donc qu'au moins une des deux variables à diviser soit un float :
Code: [Select]
float a=11.0;
ou convertir au moment de la division :
Code: [Select]
c = (float)b / a;
churchill

Luj06

Heureusement d'ailleurs, car la division d'un entier permet d'obtenir des modulos. Et pour le complément du modulo c'est %.

Par exemple:

Code: [Select]

int complet = 3260;
int cents = complet / 100; // valeur = 32
int reste = complet % 100; // valeur = 60

Go Up