Pages: [1]   Go Down
Author Topic: division de int peut elle donner un float ?  (Read 1112 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Supposons le bout de code suivant :

Code:
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 !
Logged

Massongex, Suisse
Offline Offline
Full Member
***
Karma: 3
Posts: 169
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
float a=11.0;
ou convertir au moment de la division :
Code:
c = (float)b / a;
churchill
« Last Edit: April 08, 2010, 02:40:35 am by churchill » Logged

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
int complet = 3260;
int cents = complet / 100; // valeur = 32
int reste = complet % 100; // valeur = 60
Logged

Pages: [1]   Go Up
Jump to: