private static bool ParseFractionExact(ref __DTString str, int maxDigitLen, ref double result) {
if (!str.GetNextDigit()) {
str.Index--;
return false;
}
result = str.GetDigit();
int digitLen = 1;
for (; digitLen < maxDigitLen; digitLen++) {
if (!str.GetNextDigit()) {
str.Index--;
break;
}
result = result * 10 + str.GetDigit();
}
result = ((double)result / Math.Pow(10, digitLen));
return (digitLen == maxDigitLen);
}