BigInteger:积分常数太大

卢文

我想将 BigInteger 值 (111111222222333333444444555555) 拆分为 5 个元素的数组(基本上是将大量数字拆分为不同的硬币)。它们通过向后计数和对每 6 个数字进行 SubStringing 来拆分。我正在为统一游戏构建它。也就是说,运行该函数后的测试数组应该是{111111,222222,333333,444444,555555}的数组。

在我的测试中,我调用ToRegularCoins(111111222222333333444444555555, test);where test 是一个 int[5] 数组。

功能如下:

public void ToRegularCoins(BigInteger coinsValue, int[] targetArray)
{
    string coinsValueString = coinsValue.ToString();
    string[] coinsValueStringArray = new string[5];

    for (int i = 0; i < 5; i++)
    {
        try
        {
            coinsValueStringArray[i] = coinsValueString.Substring(coinsValueString.Length - 6);
            coinsValueString = coinsValueString.Remove(coinsValueString.Length - 6, 6);
            Debug.Log("Index: " + i + "coinsValueString: " + coinsValueString);
        }
        catch(ArgumentOutOfRangeException)
        {
            Debug.Log("Exception in Index: " + i);
            coinsValueStringArray[i] = coinsValueString;
            coinsValueString = "";
        }
        try
        {
            targetArray[i] = int.Parse(coinsValueStringArray[i]); // Turn string into Int at Array's index
        }
        catch(FormatException)
        {
            Debug.Log("No Coins of Index: " + i);
        }
    }
}

运行我的脚本我得到XY.cs(32,24): error CS1021: Integral constant is too large

我该如何解决这个错误?我这样做可能比我应该做的更复杂吗?

现在住

像这样声明变量。

var coinsValue = BigInteger.Parse("111111222222333333444444555555");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章