BigDecimal
- 使用:
- 创建:
BigDecimal num1 = new BigDecimal(0.005); BigDecimal num2 = new BigDecimal(1000000); BigDecimal num3 = new BigDecimal(-1000000); //尽量用字符串的形式初始化 BigDecimal num12 = new BigDecimal("0.005"); BigDecimal num22 = new BigDecimal("1000000"); BigDecimal num32 = new BigDecimal("-1000000");
加法 add()函数 ; 减法subtract()函数 ;
乘法multiply()函数 ; 除法divide()函数 ; 绝对值abs()函数
//加法
BigDecimal result1 = num1.add(num2);
//减法
BigDecimal result2 = num1.subtract(num2);
//乘法
BigDecimal result3 = num1.multiply(num2);
//绝对值
BigDecimal result4 = num3.abs();
//除法
BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);
除法精确计算:
BigDecimal divideYum = bigDecimalYum.divide(bigDecimalCount, 4, BigDecimal.ROUND_HALF_UP);
参数解释
第三个参数 BigDecimal.ROUND_HALF_UP 类似于“四舍五入”
第一个参数 bigDecimalCount 代表被除数
第二个参数 4 代表精确位数 [0.0005]
bigDecimalYum 代表除数
divide 这个方法代表作除法计算
BigDecimal乘法整数去0
String score = map.get("score").toString();
BigDecimal bigDecimal = new BigDecimal(score);
BigDecimal multiply = bigDecimal.divide(new BigDecimal(totalScore), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
String s = multiply.stripTrailingZeros().toPlainString()+"%"; //去0的方法
去0效果:
“percentage”: “25%”
原始结果:
“percentage”: “25.00%”