No hay una manera fácil, sobre todo porque el número de dígitos matemáticamente hablando podría ser mucho mayor que el que se muestra. Por ejemplo, 4.5565 se almacena actualmente como 4.556499999999999772626324556767940521240234375
(gracias a harold para calcular eso). Es muy poco probable que encuentre una solución útil a este problema.
EDITAR
Usted podría llegar a algún algoritmo que funciona así: si, como se calcula la representación decimal, a encontrar un cierto número de 9s (o ceros) seguidas, redonda arriba (o abajo) hasta el último lugar antes de que comience la serie de 9s (o ceros). Sospecho que encontrarías más problemas en ese camino de lo que anticipabas.
¿Qué quiere decir por "más fácil"? Dudo que haya algo más fácil desde la perspectiva de la escritura/lectura, pero podría ser de alguna manera más fácil en términos de operaciones de CPU, por ejemplo. – Snowbear
Esto no es posible en realidad. http: //en.wikipedia.org/wiki/Double-precision_floating-point_format – SLaks
El valor de 'a' probablemente no sea exactamente 4.5565. Si no entiende por qué, le sugiero que lea esto: http://csharpindepth.com/Articles/General/FloatingPoint.aspx –