Как преобразовать double в строку без представления степени 10 (E-05)
double value = 0.000099999999833333343;
string text = value.ToString();
Console.WriteLine(text); // 9,99999998333333E-05
Я бы хотел, чтобы строка text была равна 0,000099999999833333343 (или почти так, я не занимаюсь ракетостроением :))
Я пробовал следующие варианты
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
Использование tostring N20 или формата F20 кажется наиболее близким к тому, что я хочу, но я получаю много конечных нулей, есть ли умный способ избежать этого? Я хотел бы получить как можно ближе к двойному представлению 0,000099999999833333343