public BigDecimal Negate(MathContext mc) { BigDecimal result = Negate(); if (mc.Precision != 0) { result = result.Round(mc); } return(result); }
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; } }
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; } }
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); }
public BigDecimal Multiply(BigDecimal val, MathContext mc) { return(Multiply(val).Round(mc)); }
public BigDecimal Subtract(BigDecimal val, MathContext mc) { return(Subtract(val).Round(mc)); }
public BigDecimal Add(BigDecimal val, MathContext mc) { return(Add(val).Round(mc)); }