Division dans un float [Résolu]

Signaler
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
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

Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
Bon, en fait, j'ai trouvé, il faut mettre le long dans un float au préalable...
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
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 )
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
PS: un long est codé en 64 bits et un float en 32 bits, attention.