Более быстрая альтернатива Convert.ToDouble

Существует ли более быстрый способ преобразования String в Double , чем Convert.ToDouble ?

Я отслеживал вызовы System.Convert.ToDouble (String) и их ухудшение производительности моего приложения.

Convert.ToDouble("1.34515");

Perfomance screenshot

РАБОЧИЙ ОТВЕТ от Джеффри Сакса:

static decimal[] decimalPowersOf10 = { 1m, 10m, 100m, 1000m, 10000m, 100000m, 1000000m }; 
static decimal CustomParseDecimal(string input) { 
    long n = 0; 
    int decimalPosition = input.Length; 
    for (int k = 0; k < input.Length; k++) { 
        char c = input[k]; 
        if (c == '.') 
            decimalPosition = k + 1; 
        else 
            n = (n * 10) + (int)(c - '0'); 
    } 
    return n / decimalPowersOf10[input.Length - decimalPosition]; 

}

After Jeffrey Sax CustomParser

6
задан Steven Muhr 10 December 2011 в 19:02
поделиться