Como converter double para string sem o poder de 10 de representação (E-05)

Como converter double para string sem o poder de 10 de representação (E-05)

double value = 0.000099999999833333343;
string text = value.ToString();
Console.WriteLine(text); // 9,99999998333333E-05

Eu gostaria da cordatexto ser 0.000099999999833333343 (ou quase isso, eu não estou fazendo ciência de foguetes :)

Eu tentei as seguintes variantes

Console.WriteLine(value.ToString());      // 9,99999998333333E-05
Console.WriteLine(value.ToString("R20")); // 9,9999999833333343E-05
Console.WriteLine(value.ToString("N20")); // 0,00009999999983333330
Console.WriteLine(String.Format("{0:F20}", value)); // 0,00009999999983333330   

Fazendo tostring N20 ou o formato F20 parece mais próximo do que eu quero, mas acabo com um monte de zeros à direita, há uma maneira inteligente de evitar isso? Eu gostaria de chegar o mais perto possível da representação dupla 0.000099999999833333343

questionAnswers(4)

yourAnswerToTheQuestion