Beispiel #1
0
        public BigDecimal Negate(MathContext mc)
        {
            BigDecimal result = Negate();

            if (mc.Precision != 0)
            {
                result = result.Round(mc);
            }
            return(result);
        }
Beispiel #2
0
 public BigDecimal(string val, MathContext mc)
     : this(val)
 {
     if (mc.Precision != 0)
     {
         BigDecimal result = Round(mc);
         mIntegerValue = result.mIntegerValue;
         mScale        = result.mScale;
         mPrecision    = result.mPrecision;
     }
 }
Beispiel #3
0
 public BigDecimal(BigInteger num, MathContext mc)
     : this(num, 0)
 {
     if (mc.Precision != 0)
     {
         BigDecimal result = Round(mc);
         mIntegerValue = result.mIntegerValue;
         mScale        = result.mScale;
         mPrecision    = result.mPrecision;
     }
 }
Beispiel #4
0
        public BigDecimal Round(MathContext mc)
        {
            int mcPrecision = mc.Precision;
            int numToChop   = Precision - mcPrecision;

            if (mcPrecision == 0 || numToChop <= 0)
            {
                return(this);
            }

            BigDecimal div     = new BigDecimal(BigInteger.Pow(new BigInteger(10), numToChop));
            BigDecimal rounded = Divide(div, mScale, mc.RoundingMode);

            rounded.mScale    -= numToChop;
            rounded.mPrecision = mcPrecision;
            return(rounded);
        }
Beispiel #5
0
 public BigDecimal Multiply(BigDecimal val, MathContext mc)
 {
     return(Multiply(val).Round(mc));
 }
Beispiel #6
0
 public BigDecimal Subtract(BigDecimal val, MathContext mc)
 {
     return(Subtract(val).Round(mc));
 }
Beispiel #7
0
 public BigDecimal Add(BigDecimal val, MathContext mc)
 {
     return(Add(val).Round(mc));
 }