Ho riscontrato un problema con il dato float "parte_decimale" quando vado a convertire la parte decimale di un numero (in base 10) in binario. I risultati li salvo nel vettore "num_bin_ch". (Non ci si soffermi sul contatore)
for(a=a+1;a<MAXBIN;a++){
parte_decimale*=2;
if(parte_decimale>=1){
num_bin_ch[a]='1';
parte_decimale=parte_decimale-1;
}else{
num_bin_ch[a]='0';
}
if(parte_decimale==0) break;
}
Il problema sorge quando vado a stampare i valori della parte decimale durante la conversione:
Es. 0.36
0.720000
0.440000
0.880000
0.760000
0.520000
0.040001
0.080002
0.160004
0.320007
0.640015
0.280029
0.560059
0.120117
0.240234
0.480469
0.960938
0.921875
0.843750
0.687500
0.375000
0.750000
0.500000
0.000000
Non capisco perchè ad un certo punto viene aggiunto un '1' a caso . L'aggiunta di quell'uno mi cambia il risultato finale
Come faccio a risolvere questo problema?