Один из способов получить желаемый результат - использовать String.Format
следующим образом:
double x = 20.0e-6;
string y = string.Format("{0:0.######}",x);
Console.WriteLine(y);
. Для вашего примера выдается значение 0.00002
РЕДАКТИРОВАТЬ
Я только что понял, что это на самом деле противоположность вашего вопроса, поэтому в целях сохранения полезности ответа я добавлю следующее:
Учитывая строку, выможно проанализировать как double, а затем применить ту же логику, что и выше.Возможно, это не самое элегантное решение, однако оно предлагает другой способ получить желаемый результат.
string x = "20.0e-6";
var y = double.Parse(p);
Console.WriteLine(String.Format("{0:0.######}",y));