bonjour, j'ai un petit problème dans un de mes programmes. son but est de convertir du binaire en décimal.

pour ce faire, je divise successivement le nombre par 10 et ainsi traiter le dernier bit.

exemple avec 5 (101)

1) 101/10= 10.1 on traite le .1, on le multiplie par 2^0 comme c'est le bit n°1
puis enlève la partie décimale pour traiter le bit suivant donc on a 10

2) 10/10= 1.0, on traite le .0 on le multiplie par 2^1 comme c'est le bit n°2
puis on enlève la partie décimale pour traiter le bit suivant donc on a 1

3)1/10= 0.1, on traite le .1 on le multiplie par 2^2 comme c'est le bit n°3
puis on enlève la partie décimale pour traiter le bit suivant, mais comme la partie entière donne 0, la boucle s'arrête

on affiche ensuite la somme des parties décimales multipliées par 2^i.

sur le papier tout va bien, en exécution par contre.... c'est le drame et je n'arrive pas à comprendre comment résoudre le problème

exemples :

pour 21 il m'affiche 20.999770, pour 5 il m'affiche 5.000004 alors que pour 3 il m'affiche le résultat correct soit 3.000000

voici le code source avec les commentaires

http://pastebin.com/f50e709ad

merci de m'aider sur la solution à adopter afin d'éliminer toutes erreurs