Division dans un float

Résolu
el_teedee
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
- 7 juil. 2005 à 11:37
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
- 7 juil. 2005 à 12:06
Salut,



je voudrais diviser une taille de répertoire par 1024 pour l'avoir en
Ko, mais le résultat de 8370 / 1024 qui fait normalement 8,17Ko je
crois, donne 8.0 !



la variable qui contient la taille du répertoire est un long (=8370),
et le résultat, j'ai essayé en float et en double, c pareil : 8.0



Comment obtenir le vrai résultat ?

3 réponses

el_teedee
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
7
7 juil. 2005 à 11:43
Bon, en fait, j'ai trouvé, il faut mettre le long dans un float au préalable...
3
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
7 juil. 2005 à 12:03
En fait y'a une subtilité avec le résultat intermédiaire dans une opération, faut comprendre la promotion des types, le résultat intermédiaire c'est ce qui se passe avant l'opérateur d'affectation "=".

8370 / 1024 donne un int ( int / int = int )
8370 / 1024.0 donne un double ( int / double = double )
0
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
7 juil. 2005 à 12:06
PS: un long est codé en 64 bits et un float en 32 bits, attention.
0