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); }
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); }
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); }
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); }