首先效果展示:
public static void main(String[] args) {
String s1="2.560";
String s2="0.525";
String add = BigDecimalUtils.add(s1, s2, 2);
String subtract = BigDecimalUtils.subtract(s1, s2,2);
String multiply = BigDecimalUtils.multiply(s1, s2, 2);
String divide = BigDecimalUtils.divide(s1, s2, 2);
System.out.println(s1+"+"+s2+"="+add);
System.out.println(s1+"-"+s2+"="+subtract);
System.out.println(s1+"*"+s2+"="+multiply);
System.out.println(s1+"/"+s2+"="+divide);
}
输出结果:
注意:该工具直接复制粘贴到代码里面即可使用
package com.excel.util;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
/**
* @author lenovo
*/
public class BigDecimalUtils {
/**
* 两数相加保留(Scale)位小数
* @param s1
* @param s2
* @param scale 小数位
* @return s1+s2
*/
public static String add(String s1, String s2, int scale) {
BigDecimal d1 = new BigDecimal(s1);
BigDecimal d2 = new BigDecimal(s2);
BigDecimal result = d1.add(d2);
result = result.setScale(scale, 4);
return result.toPlainString();
}
/**
* 两数相减保留(Scale)位小数
* @param s1
* @param s2
* @param scale 小数位
* @return s1-s2
*/
public static String subtract(String s1, String s2, int scale) {
BigDecimal d1 = new BigDecimal(s1);
BigDecimal d2 = new BigDecimal(s2);
BigDecimal result = d1.subtract(d2);
result = result.setScale(scale, 4);
return result.toPlainString();
}
/**
* 两数相乘保留(Scale)位小数
* @param s1
* @param s2
* @param scale 小数位
* @return s1*s2
*/
public static String multiply(String s1, String s2, int scale) {
BigDecimal d1 = new BigDecimal(s1);
BigDecimal d2 = new BigDecimal(s2);
BigDecimal result = d1.multiply(d2);
result = result.setScale(scale, 4);
return result.toPlainString();
}
/**
* 两数相除保留(Scale)位小数
* @param s1
* @param s2
* @param scale 小数位
* @return s1/s2
*/
public static String divide(String s1, String s2, int scale) {
MathContext mc = new MathContext(20, RoundingMode.HALF_UP);
BigDecimal d1 = new BigDecimal(s1);
BigDecimal d2 = new BigDecimal(s2);
BigDecimal result = d1.divide(d2, mc);
result = result.setScale(scale, 4);
return result.toPlainString();
}
}