Non ha molto senso fare una cosa del genere, dato che i numeri in virgola mobile sono intrinsecamente imprecisi, oltre che per le perdite di precisione che si hanno in determinate operazioni, anche perché sono memorizzati con mantissa ed esponente limitate e in base due; questo significa che i numeri periodici, per forza di cose, sono arrotondati all'ultima cifra effettiva, e molti numeri che in base 10 non sono periodici diventano periodici (e quindi approssimati per forza di cose) in base due.
Ad esempio 0.1 viene memorizzato come 0.100000000000000005551115123125782702118158340454 1015625 o roba del genere (per il troncamento/arrotondamento della sua rappresentazione binaria periodica), dunque qualunque algoritmo che tu possa inventarti non ti restituirà mai 1 come numero di cifre dopo la virgola, dato che il numero effettivamente memorizzato non è 0.1.
Leggi qui per ulteriori dettagli.
Incidentalmente, l'imprecisione intrinseca nei numeri in virgola mobile è il motivo per cui non si dovrebbero mai usare per memorizzare valori monetari, per cui vanno preferiti i tipi in virgola fissa o altre rappresentazioni che non hanno questi problemi.

Rispondi quotando