该对象是封装上下文设置的不可变对象,它描述数字运算符的某些规则,例如由 BigDecimal
类实现的规则。
基本独立设置为:
RoundingMode
对象,该对象指定舍入使用的算法。
public static int getLongLength(java.math.BigDecimal numericalValue) { String sNumericalValue = numericalValue.toPlainString(); String[] arrayValues = { "", "" }; if (!(sNumericalValue.indexOf(".") < 0)) { arrayValues = sNumericalValue.split("\\."); } else { arrayValues[0] = sNumericalValue; } if (arrayValues[0].contains("-")) { arrayValues[0] = arrayValues[0].replaceAll("-", ""); } int intLength = arrayValues[0].length(); return intLength; } public static java.math.BigDecimal muliply(java.math.BigDecimal bg1, java.math.BigDecimal bg2, int scale, RoundingMode roundingMode) { java.math.BigDecimal result = bg1.multiply(bg2); int intLength = getLongLength(result); MathContext context = new MathContext(intLength + scale, roundingMode); result = result.round(context); return result; } public static void main(String[] args) { System.out.print(BigDecimal.muliply(new java.math.BigDecimal(1911.11), new java.math.BigDecimal(10.12), 2, RoundingMode.HALF_UP)); }