private unsafe static bool NumberToBigInteger(ref BigNumberBuffer number, ref BigInteger value)
{
int i = number.scale;
int cur = 0;
BigInteger ten = 10;
value = 0;
while (--i >= 0)
{
value *= ten;
if (number.digits[cur] != '\0')
{
value += number.digits[cur++] - '0';
}
}
while (number.digits[cur] != '\0')
{
if (number.digits[cur++] != '0') return false; // Disallow non-zero trailing decimal places
}
if (number.sign)
{
value = -value;
}
return true;
}