Ejemplo n.º 1
0
    private void TestCase_Operator_1()
    {
        Debug.Log("Start TestCase_Operator_1");

        SHugeNumber sHugeNum1 = new SHugeNumber(123, SHugeNumber.EUnit.None);
        SHugeNumber sHugeNum2 = new SHugeNumber(456, SHugeNumber.EUnit.None);

        Debug.Log(sHugeNum1 + sHugeNum2);
        Debug.Log(sHugeNum1 + sHugeNum2 - sHugeNum1);

        sHugeNum1 = new SHugeNumber(100, SHugeNumber.EUnit.A);
        sHugeNum2 = new SHugeNumber(100, SHugeNumber.EUnit.B);
        Debug.Log(sHugeNum1 + sHugeNum2);
        Debug.Log(sHugeNum1 + sHugeNum2 - sHugeNum1);

        //CManagerProfiler.instance.DoStartTestCase( "Test" );
        sHugeNum1 = new SHugeNumber(1, SHugeNumber.EUnit.A);
        sHugeNum2 = new SHugeNumber(1, SHugeNumber.EUnit.C);
        SHugeNumber sHugeNum3 = sHugeNum2;

        for (int i = 0; i < 1000; i++)
        {
            sHugeNum3 += sHugeNum1;
        }

        sHugeNum3 += new SHugeNumber(999, SHugeNumber.EUnit.B);
        //CManagerProfiler.instance.DoFinishTestCase( "Test" );
        //CManagerProfiler.instance.DoPrintResult(false);

        Debug.Log(sHugeNum3);
    }
Ejemplo n.º 2
0
    static public SHugeNumber operator -(SHugeNumber sNumberA, SHugeNumber sNumberB)
    {
        SHugeNumber sNumberHuge;
        SHugeNumber sNumberSmall;
        bool        bIsCompare = CheckIsCompareUnit(sNumberA, sNumberB, out sNumberHuge, out sNumberSmall);

        if (bIsCompare)
        {
            return(new SHugeNumber(sNumberA._dNumber - sNumberB._dNumber, sNumberHuge._eUnit));
        }
        else
        {
            bool bIsNegative = sNumberA.p_eUnit < sNumberB.p_eUnit;
            int  iUnitOffset = sNumberHuge._eUnit - sNumberSmall._eUnit;
            for (int i = 0; i < iUnitOffset; i++)
            {
                sNumberSmall._dNumber *= 0.001;
            }

            SHugeNumber sReturnNumber = new SHugeNumber(sNumberHuge._dNumber - sNumberSmall._dNumber, sNumberHuge._eUnit);
            if (bIsNegative)
            {
                sReturnNumber._dNumber *= -1;
            }

            return(sReturnNumber);
        }
    }
Ejemplo n.º 3
0
    private void TestCase_Operator_2()
    {
        Debug.Log("Start TestCase_Operator_2");

        CManagerProfiler.instance.DoStartTestCase("Test");
        for (int i = 0; i < 1000; i++)
        {
            SHugeNumber sHugeNum1 = new SHugeNumber(1, SHugeNumber.EUnit.None);
            SHugeNumber sHugeNum2 = sHugeNum1 * 100000000;
            SHugeNumber sHugeNum3 = new SHugeNumber(1, SHugeNumber.EUnit.G);

            sHugeNum3 += sHugeNum2;
            sHugeNum3 -= sHugeNum2;
        }
        CManagerProfiler.instance.DoFinishTestCase("Test");
        CManagerProfiler.instance.DoPrintResult(false);
    }
Ejemplo n.º 4
0
    private void TestCase_InitNumber()
    {
        Debug.Log("Start TestCase_InitNumber");

        SHugeNumber sHugeNum = new SHugeNumber(100, SHugeNumber.EUnit.None);

        Debug.Log(sHugeNum);

        sHugeNum = new SHugeNumber(1234100.1234, SHugeNumber.EUnit.None);
        Debug.Log(sHugeNum);

        sHugeNum = new SHugeNumber(0.1234567, SHugeNumber.EUnit.A);
        Debug.Log(sHugeNum);

        sHugeNum = new SHugeNumber(1234100.1234, SHugeNumber.EUnit.G);
        Debug.Log(sHugeNum);
    }
Ejemplo n.º 5
0
    static public bool CheckIsCompareUnit(SHugeNumber sNumberA, SHugeNumber sNumberB, out SHugeNumber sNumberHuge, out SHugeNumber sNumberSmall)
    {
        bool bIsCompare = true;

        if (sNumberA._eUnit > sNumberB._eUnit)
        {
            sNumberHuge  = sNumberA;
            sNumberSmall = sNumberB;
            bIsCompare   = false;
        }
        else if (sNumberA._eUnit < sNumberB._eUnit)
        {
            sNumberHuge  = sNumberB;
            sNumberSmall = sNumberA;
            bIsCompare   = false;
        }

        else if (sNumberA._dNumber > sNumberB._dNumber)
        {
            sNumberHuge  = sNumberA;
            sNumberSmall = sNumberB;
            bIsCompare   = true;
        }
        else if (sNumberA._dNumber < sNumberB._dNumber)
        {
            sNumberHuge  = sNumberB;
            sNumberSmall = sNumberA;
            bIsCompare   = true;
        }
        else
        {
            sNumberHuge  = new SHugeNumber();
            sNumberSmall = new SHugeNumber();
        }

        return(bIsCompare);
    }