C#代码中我公司工作遇到的就是计算Decimal
,如下图:
android怎么写代码实现计算BigDecimal
先理解一下
1.add:加法
2.subtract:减法
3.multiply:乘法
4.divide:除法
加法计算
BigDecimal num = new BigDecimal("1.111111111111111111111111111111");
BigDecimal num1 =new BigDecimal("2.222222222222222222222222222222");
System.out.println("add ========= "+num.add(num1));
减法计算
BigDecimal num = new BigDecimal("1.111111111111111111111111111111");
BigDecimal num1 =new BigDecimal("2.222222222222222222222222222222");
System.out.println("subtract ========= "+num1.subtract(num));
乘法计算
BigDecimal num = new BigDecimal("1.11111111111111111111");
BigDecimal num1 =new BigDecimal("2.22222222222222222222");
System.out.println("multiply ========= "+num1.multiply(num));
除法计算
BigDecimal num = new BigDecimal("1");
BigDecimal num1 =new BigDecimal("2.222222222222222222222222222222");
System.out.println("divide ========= "+num1.divide(num));
理解好了可以怎么写代码BigDecimal
计算,代码如下:
BigDecimal buildprocessfund = new BigDecimal(BuildProcessFund);
BigDecimal buildInvest = new BigDecimal(BuildInvest);
//ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2
//ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1
//50是scale的,scale表示小数点的位数
BigDecimal bd = buildprocessfund.divide(buildInvest,50,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
//scale指的是你小数点后的位数。
//setScale(2,BigDecimal.ROUND_HALF_UP)四舍五入,2.358变成2.36
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);