Пример #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);
    }
Пример #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);
    }
Пример #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);
    }
Пример #4
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);
    }