Ejemplo n.º 1
0
    public static BFloat Pow(BFloat x, double y)
    {
        BFloat ret = x;

        ret._scale = x._scale * y;
        ret._num   = Math.Pow(x._num, y);
        ret.CutNumber();
        return(ret);
    }
Ejemplo n.º 2
0
    public static BFloat operator *(BFloat left, BFloat right)
    {
        BFloat ret = left;

        ret._num   = left._num * right._num;
        ret._scale = left._scale + right._scale;
        ret.CutNumber();
        return(ret);
    }
Ejemplo n.º 3
0
    public static BFloat operator /(BFloat left, BFloat right)
    {
        BFloat ret = left;

        if (left._scale < right._scale)
        {
            left.ChangeScale(right._scale);
        }
        ret._num   = left._num / right._num;
        ret._scale = left._scale - right._scale;
        ret.CutNumber();
        return(ret);
    }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            //bfloat b1 = 152300;
            //bfloat b2 = new BFloat(1.2411, 26+15);
            //bfloat b3 = 23523423423423234234568.0;
            //Console.WriteLine(
            //    $"{b1.ToString(BFloatStringFormat.UseLetters)}\n{b2.ToString(BFloatStringFormat.UseLetters)}\n{b3.ToString(BFloatStringFormat.UseLetters)}");
            bfloat b = 1.523;

            for (int i = 0; i < 1000; i++)
            {
                b *= 10;
                //Console.WriteLine(b.ToString(BFloatStringFormat.UseLetters));
                Console.WriteLine(b.ToString(BFloatStringFormat.ChineseAndLetters));
            }

            Console.ReadKey();
        }
Ejemplo n.º 5
0
    public static BFloat operator -(BFloat left, BFloat right)
    {
        BFloat ret = left;

        //修正位数
        if (left._scale > right._scale)
        {
            right.ChangeScale(left._scale);
        }
        else if (left._scale < right._scale)
        {
            left.ChangeScale(right._scale);
        }

        ret._scale = left._scale;
        ret._num   = left._num - right._num;
        ret.CutNumber();
        return(ret);
    }
Ejemplo n.º 6
0
    public override bool Equals(object obj)
    {
        BFloat o = (BFloat)obj;

        return(_num == o._scale && _scale == o._scale);
    }