Существует ли более быстрый способ преобразования String в Double , чем Convert.ToDouble ?
Я отслеживал вызовы System.Convert.ToDouble (String) и их ухудшение производительности моего приложения.
Convert.ToDouble("1.34515");
РАБОЧИЙ ОТВЕТ от Джеффри Сакса:
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];
}