OpenTween.RadixConvert.ToDecimal C# (CSharp) Method

ToDecimal() public static method

3~36進数の数値文字列をDecimal型の数値に変換します。
※2/8/10/16進数は、Convert.ToDecimalメソッドを使ってください。 ※+や-の符号や0xなどのプレフィックスには対応していません。 ※引数となる数値文字列に、スペースなどの文字を含めないでください。
public static ToDecimal ( string s, int radix ) : decimal
s string 数値文字列
radix int 基数
return decimal
        public static decimal ToDecimal(string s, int radix)
        {
            // 引数をチェックをする
            CheckNumberArgument(s);
            CheckRadixArgument(radix);

            var curValue = 0m;                                         // 変換中の数値
            decimal maxValue = decimal.MaxValue / (decimal)radix;  // 最大値の1けた前の数値

            // 数値文字列を解析して数値に変換する
            char num;         // 処理中の1けたの数値文字列
            int digit;    // 処理中の1けたの数値
            int length = s.Length;
            for (int i = 0; i < length; i++)
            {
                num = s[i];
                digit = GetDigitFromNumber(num);
                CheckDigitOutOfRange(digit, radix);

                // 次にradixを掛けるときに数値がオーバーフローしないかを事前にチェックする
                CheckDigitOverflow(curValue, maxValue);
                curValue = curValue * (decimal)radix + (decimal)digit;
            }
            return curValue;
        }