Converting double to string without scientific notation and without losing digits
I know, it's a challenge convert your big doubles to string, but if you can use decimal instead of double, the conversion could be smooth.

static void Main(string[] args)
{
    decimal d1 = 123456789012171.23m;
    decimal d2 = 0.0000000000000001m;
    decimal d3 = 10000000000000000m;

    Console.WriteLine(d1);
    Console.WriteLine(d2);
    Console.WriteLine(d3);
}