Double ToString - нет научной нотации

Я просто наткнулся на замечательную "функцию", которую .NET по умолчанию будет использовать Double.ToString() с использованием научной нотации, если будет достаточно десятичных знаков.

.005.ToString() // ".005"
.00005.ToString() // "5E-05" 

Кто-нибудь знает эффективный способ заставить это появиться в виде строки в стандартной (ненаучной) нотации?

Я видел этот вопрос, но два первых ответа кажутся мне взломанными, поскольку они оба делают Double.ToString(), а затем просто переформатируют результаты.

Спасибо за любую помощь.

EDIT:

Желаемый результат:

.00005.ToString() == ".00005"

EDIT2:

Что со всеми дублирующими и закрытыми голосами? Я конкретно говорю в вопросе, что подобный вопрос не имеет удовлетворительного ответа. Люди на этом сайте получают слишком сильную радость.

МОЕ РЕШЕНИЕ:

В случае, если это полезно для всех:

/// <summary>
/// Converts the double to a standard notation string.
/// </summary>
/// <param name="d">The double to convert.</param>
/// <returns>The double as a standard notation string.</returns>
public static String ToStandardNotationString(this double d)
{
    //Keeps precision of double up to is maximum
    return d.ToString(".#####################################################################################################################################################################################################################################################################################################################################");

}

ПРИМЕЧАНИЕ. Это работает только для значений > 1. Я еще не нашел эффективного способа сделать это для всех значений.

Ответы

Ответ 1

См. Стандарт и Пользовательские строки числового формата. Я думаю, что вы ищете ".################":

.00005.ToString(".################") // returns ".00005"

Это несколько хакерский, да, но он работает, если у вас не больше, чем много мест после десятичной. Если вы это сделаете, вы можете использовать StringBuilder для построения около 330 # в своей строке (double.Epsilon имеет порядок E-324).