Piccolo appunto,se non sbaglio dipende sia dal compilatore che dal sistema operativo però (almeno da me) il double ed il long double hanno la stessa identica dimensione di 8 byte (e non 12) ma magari col tuo SO e il tuo compiler la situazione è diversa.
Detto questo purtroppo non ho soluzioni da darti peò la cosa interessa molto pure me,tanto che una volta mi ero persino proposto di realizzare una classe (o meglio un set di classi,una per ogni numero) C++,che risolvesse lo stesso problem,poi ho dovuto abandonare per mancanza di tempo.Perciò se trovi una soluzione esternamente a questo forum magari postala anche quì che mi interessa.Grazie