在进行两个字符串获取字符串与数字进行运算的时候,要先将字符串转换为对应的大数字BigDecimal:
举例:
String str1="111";
String str2="222";
BigDecimal num1 = new BigDecimal(str1);
BigDecimal num2 = new BigDecimal(str2);
然后通过BigDecimal的加减乘除方法,进行运算:
加法:
BigDecimal result = num1.add(num2);
减法:
result = num1.subtract(num2);
除法:
result = num1.divide(num2);
乘法:
result = num1.multiply(num2);
项目案例:
计算年份,以2017年为最低年,往后计算获取对应的数据,例如2020年比2017多3年,得到int类型的3,在从枚举Year中获取数据(这只是项目的需要,具体业务根据上面的案例获取)
/**
* 到添加页面
* TODO
* @return
*/
public String add() {
System.out.println();
//年份算法
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
String format2 = format.format(new Date());
format2=format2.substring(0,4);
// 先将字符串转化为大数字BigDecimal:
BigDecimal num1 = new BigDecimal("2017");
BigDecimal num2 = new BigDecimal(format2);
// 减法:
BigDecimal result = num2.subtract(num1);
int b=result.intValue();
if(b>=0&&b<=15){
year= new Year[] {Year.values()[b], Year.values()[b+1], Year.values()[b+2], Year.values()[b+3],Year.values()[b+4] };
}else {
year= new Year[] {Year.values()[15], Year.values()[16], Year.values()[17], Year.values()[18],Year.values()[19] };
}
itemSorts = getItemSort();
return "add";
}